iPhone调试真实设备

the*_*ker 10 iphone debugging printf objective-c

在XCode Organizer中,控制台 - 我可以读取NSLog输出,但不是printf().这是否可以printf()在真实设备上读取结果,就像在模拟器中一样?

Soh*_*aib 17

最简单的解决方案是在项目中全局重载printf函数,并将其替换为NSLog输出

int printf(const char * __restrict format, ...)
{ 
    va_list args;
    va_start(args,format);    
    NSLogv([NSString stringWithUTF8String:format], args) ;    
    va_end(args);
    return 1;
}
Run Code Online (Sandbox Code Playgroud)

  • 我们应该把这段代码放在哪里? (2认同)

Swi*_*ler 10

正如Nick Lockwood在上面的一条评论中所说,printf打印到stdout但NSLog打印到stderr.您可以使用fprintf打印到stderr(Xcode控制台)而不是使用printf,如下所示:

fprintf(stderr, "This prints to the Xcode debug console");
Run Code Online (Sandbox Code Playgroud)