关于Xcode8 iOS10下模拟器NSLog不输出的问题

本文介绍了解决Xcode8 Beta版本中模拟器运行应用时,NSLog日志无法在控制台正常显示的问题。通过宏定义将NSLog替换为printf函数,并添加时间戳,可以在开发模式下恢复日志的显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天升级了Xcode8beta版,兴高采烈的打开工程启动模拟器后发现自己的NSLog输出在console中看不到了,查阅Xcode8 release note后发现官方的中有这么一段

When debugging an app running on Simulator, logs may not be visible in the console. 
Workaround: Use command + / in Simulator.app to open the system log in the Console app to view NSLogs. (26457535)

那么官方的方案是推荐我们使用系统的控制台来看日志:开着模拟器,按下“Command”和“/”键调出来,混杂着各种乱七八糟的日志,阅读起来很不爽。。。

有没有办法恢复以前console中显示我们日志呢? 
好消息是printf()函数经过测试还是可以用的,那么我们可以通过宏定义来替换原来的NSLog

#define NSLog(...) printf("%f %s\n",[[NSDate date]timeIntervalSince1970],[[NSString stringWithFormat:__VA_ARGS__]UTF8String]);

如果希望该修改仅针对开发模式生效,可以添加

#ifndef __OPTIMIZE__
#define NSLog(...) printf("%f %s\n",[[NSDate date]timeIntervalSince1970],[[NSString stringWithFormat:__VA_ARGS__]UTF8String]);
#endif
好了,把这个宏丢到你的项目中比如Debug.h文件中,在全局引用中或各个文件自己引用即可.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值