ios開發 巨集定義實現NSLog不列印設定

2021-07-15 23:12:47 字數 729 閱讀 5226

我們可以在發布版本前先把所有nslog語句注釋掉,等以後要除錯時,再取消這些注釋,這實在是一件無趣而耗時的事!還好,還有更優雅的解決方法,就是在專案的prefix.pch檔案裡加入下面一段**,加入後,nslog就只在debug下有輸出,release下不輸出了。

在-prefix.pch(pch全稱是「precompiled header」,也就是預編譯標頭檔案,該檔案裡存放的工程中一些不常被修改的**,比如常用的框架標頭檔案,這樣做的目的提高編譯器編譯速度。我們知道當我們修改乙個工程中某個檔案**時候,編譯器並不是重新編譯所有所有檔案,而是編譯改動過檔案的,假如pch中某個檔案修改了,那麼pch整個檔案裡包含的的其他檔案也會重新編譯一次,這樣就會消耗大量時間,所以它裡面新增的檔案最好是是很少變動或不變動的標頭檔案或者是預編譯的**片段;)檔案中新增[plain]view plaincopy

#ifdef debug 

#define nslog(...) nslog(__va_args__) 

#define debugmethod() nslog(@"%s", __func__) 

#else 

#define nslog(...) 

#define debugmethod() 

#endif  

上段**的意思就是 用巨集指令做乙個判斷,如果debug為真,則編譯#ifdef到#endif巨集定義,否則編譯器就不編譯;

這個debug在哪設定呢,

iOS開發過程中,NSLog巨集定義

在專案開發的過程中,經常遇到要在除錯的時候列印log,但是上線或是release 的時候不需要去顯示log 的情況,此時你辛辛苦苦寫了那麼多的log,你要麼就手動注釋掉,要麼就是設乙個開關變數,企圖用這個總開關開啟。其實可以充分利用巨集定義進行設定。步驟比較簡單,只需要 在projectname p...

巨集定義重寫NSLog

define debug 巨集輸出函式 ifdef debug define mylog fmt,fprintf stderr,s d行 s n nsstring stringwithutf8string file lastpathcomponent utf8string line nsstring...

重寫系統NSLog 巨集定義

在程式執行過程中,通常會列印一些資訊來幫助我們跟蹤執行定位,但是程式中過多的nslog在執行過程中是非常耗記憶體的,然而使用者在使用時並需要這些追蹤資訊。弊端 1 消耗手機執行記憶體 2 不可避免的洩露一些敏感資訊 重寫nslog,debug模式下列印日誌和當前行數 if debug define ...