使用Xcode8的Beta版本进行Objective-C/iOS程序调试时,使用NSLog无法输出日志,同时输出以下内容:
subsystem: com.apple.BaseBoard, category: MachPort, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0
subsystem: com.apple.FrontBoard, category: Common, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0
同样的Objective-C/iOS代码在Xcode7版本输出正常,没有出现。
苹果的官方论坛也有人提了Xcode8 beta的Bug
https://forums.developer.apple.com/thread/49136
官方的解释是最新的Xcode的BUG,
然后,在Xcode8 beta 2中貌似解决了。
Resolved in Xcode 8 beta 2 – IDE
Debugging
When debugging an app on the Simulator, logs are visible. (26457535)
然后,在Xcode8 beta 4中又要解决了一遍。伤不起啊。
Known Issues in Xcode 8 beta 4 – IDE
Debugging
Xcode Debug Console shows extra logging from system frameworks when debugging applications in the Simulator. (27331147, 26652255)
StackOverflow上有人建议在输出日志的时候在日志最前方增一个特殊字符比如 ‘^’ 可以解决问题。Xcode8下实测有效
输出格式
// worked in Xcode8 beta
NSLog(@"^ Test Log")
为了一劳永逸,俺们还是定义NSLog的为DLog和ALog吧。
#ifdef DEBUG
# define DLog(fmt, ...) NSLog((@"^ %s line %d " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
# define DLog(...)
#endif
#define ALog(fmt, ...) NSLog((@"^ %s line %d " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
参考
http://stackoverflow.com/questions/37800790/hide-xcode-8-logs
--------------------------------------------------------------------------------------
- 版权声明:
- 如在本页面内无特别说明,本文内容均为[李大仁博客]原创,本文版权归[李大仁博客]所有。
- 欢迎转载,转载请务必在文章页面明显位置提供原文链接并注明出处。欢迎您在转载本文时保留本段声明。
- 文章标题: Xcode8 beta版无法输出NSLog问题
- 独立博客: 李大仁博客
- 永久链接: http://www.lidaren.com/archives/1684
--------------------------------------------------------------------------------------
以上内容由博客自动发布工具自动发布,最终显示内容和效果会与原文内容有所偏差,敬请谅解。