在XCode Organizer中,控制台 - 我可以阅读NSLog
输出,但不能阅读printf()
。这是否可以在真实设备上读取printf()
结果,就像在模拟器中一样?
答案 0 :(得分: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;
}
答案 1 :(得分:10)
正如Nick Lockwood在上面的一条评论中所说,printf打印到stdout但NSLog打印到stderr。您可以使用fprintf打印到stderr(Xcode控制台)而不是使用printf,如下所示:
fprintf(stderr, "This prints to the Xcode debug console");
答案 2 :(得分:4)
您可以运行以下命令仅打印到设备的控制台:
syslog(LOG_WARNING, "log string");
您还需要#include< sys / syslog.h>对于syslog和要显式声明的LOG_WARNING
答案 3 :(得分:-1)
Skippy,printf()是c的输出语句,不是Objective C,在实际设备中也是如此,printf()也不起作用。