關於Xcode8 iOS10下模擬器NSLog不輸出的問題

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

發佈了66 篇原創文章 · 獲贊 4 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章