利用巨集定義控制nslog 的輸入輸出
阿新 • • 發佈:2019-01-30
在專案的過程中,經常遇到要在除錯的時候列印log,但是上線或是release 的時候不需要去顯示log 的情況,此時你辛辛苦苦寫了那麼多的log,你要麼就手動註釋掉,要麼就是設一個開關變數,企圖用這個總開關開啟。其實可以充分利用巨集定義進行設定。
步驟比較簡單,只需要 在ProjectName_Prefix.pch 中追加你對應的巨集定義,不用import 就可以直接使用了。
巨集定義寫法如下:
#ifdef DEBUG #define LOG(...) NSLog(__VA_ARGS__); #define LOG_METHOD NSLog(@"%s", __func__); #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 ->