Home > 语言编程, 零敲碎打 > Xcode8 beta版无法输出NSLog问题

Xcode8 beta版无法输出NSLog问题

使用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

  1. No comments yet.
  1. No trackbacks yet.
You must be logged in to post a comment.