昨天升級了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文件中,在全局引用中或各個文件自己引用即可.