前提:在xcode做開發除錯時往往需要列印一些除錯資訊做debug用,大家知道當列印資訊的地方多了之後在模擬器上跑可能不會有什麼問題,因為模擬器用的是電腦的硬體但是當應用跑在裝置上時這些輸出語句會在很大程度上影響應用的效能,針對這種問題可以寫一些巨集來控制這些除錯資訊的輸出。
在-prefix.pch(pch全稱是「precompiled header」,也就是預編譯標頭檔案,該檔案裡存放的工程中一些不常被修改的**,比如常用的框架標頭檔案,這樣做的目的提高編譯器編譯速度。我們知道當我們修改乙個工程中某個檔案**時候,編譯器並不是重新編譯所有所有檔案,而是編譯改動過檔案的,假如pch中某個檔案修改了,那麼pch整個檔案裡包含的的其他檔案也會重新編譯一次,這樣就會消耗大量時間,所以它裡面新增的檔案最好是是很少變動或不變動的標頭檔案或者是預編譯的**片段;)檔案中新增
#ifdef debug
#define nslog(...) nslog(__va_args__)
#define debugmethod() nslog(@"%s", __func__)
#else
#define nslog(...)
#define debugmethod()
#endif
上段**的意思就是 用巨集指令做乙個判斷,如果debug為真,則編譯#ifdef到#endif巨集定義,否則編譯器就不編譯;
這個debug在哪設定呢,
在 "target > build settings > preprocessor macros > debug" 裡有乙個"debug=1"。
設定為debug模式下,product-->scheme-->schemeedit scheme
設定build configuration成debug時,就可以列印nslog了。
NSLog使用技巧
新建 pch 檔案。在 building setting 中搜尋 prefix header 寫入 專案名稱 pch檔名 在 pch 檔案中新增如下 ifdef objc ifdef debug define nslog fmt,nslog s line d fmt pretty function ...
OC 開發之NSLog使用技巧
我們可以在發布版本前先把所有nslog語句注釋掉,等以後要除錯時,再取消這些注釋,這實在是一件無趣而耗時的事!還好,還有更優雅的解決方法,就是在專案的prefix.pc 件裡加入下面一段 加入後,nslog就只在debug下有輸出,release下不輸出了。在 prefix.pch pch全稱是 p...
優化的NSLog技巧
使用nslog的乙個風險是 它的執行會占用時間和裝置資源。簡單而粗暴的解決方案是 在release前,將所有的nslog注釋掉。簡單有效,但 是 下次你要除錯時,又得將nslog乙個個取消注釋。以release模式編譯的程式不會用nslog輸出,而以debug模式編譯的程式將執行nslog的全部功能...