專案中的NSLog

weixin_33670713發表於2016-05-04

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

       步驟比較簡單,只需要 在ProjectName_Prefix.pch 中追加你對應的巨集定義,不用import 就可以直接使用了。

巨集定義寫法如下:

#ifdef DEBUG

#define LOG(...) NSLog(__VA_ARGS__);

#define LOG(...) NSLog(@"%s Line %d: \n %@ \n\n", __func__, __LINE__, [NSString stringWithFormat:__VA_ARGS__])

#else

#define LOG(...); 

#define LOG_METHOD;

#endif

這樣設定後,只需要在Product ->Scheme->Edit Scheme ->info選擇,是release ,還是debug版本即可。如果debug 版本,則答應log,若release版本則不列印。

我們釋出到appstore 上的版本均是release版本,這裡簡單說下這兩個版本的差異。

release 是發行版本,比debug版本要小一些,他們呼叫兩個不同底層庫,debug 包含的資訊多,可以斷點除錯,單步執行,使用使用TRACE/ASSERT等除錯輸出語句,

但是release 版本不包含除錯資訊,執行速度比較快。

另外在此處設定的DEBUG 引數可以在下面的路徑進行設定:工程->Target->Build Setting ->Preprocessor Macros。預設系統已經給出了DEBUG的引數。如果要增加新的引數,則在哪裡進行增加。

相關文章