banner
李大仁博客

李大仁博客

天地虽大,但有一念向善,心存良知,虽凡夫俗子,皆可为圣贤。

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

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。