項(xiàng)目中的NSLog

? ? ? ?在項(xiàng)目的過程中,經(jīng)常遇到要在調(diào)試的時(shí)候打印log,但是上線或是release 的時(shí)候不需要去顯示log 的情況,此時(shí)你辛辛苦苦寫了那么多的log,你要么就手動(dòng)注釋掉,要么就是設(shè)一個(gè)開關(guān)變量,企圖用這個(gè)總開關(guān)開啟。其實(shí)可以充分利用宏定義進(jìn)行設(shè)置

? ? ? ?步驟比較簡單,只需要 在ProjectName_Prefix.pch 中追加你對(duì)應(yīng)的宏定義,不用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

這樣設(shè)置后,只需要在Product ->Scheme->Edit Scheme ->info選擇,是release ,還是debug版本即可。如果debug 版本,則答應(yīng)log,若release版本則不打印。

我們發(fā)布到appstore 上的版本均是release版本,這里簡單說下這兩個(gè)版本的差異。

release 是發(fā)行版本,比debug版本要小一些,他們調(diào)用兩個(gè)不同底層庫,debug 包含的信息多,可以斷點(diǎn)調(diào)試,單步執(zhí)行,使用使用TRACE/ASSERT等調(diào)試輸出語句,

但是release 版本不包含調(diào)試信息,運(yùn)行速度比較快。

另外在此處設(shè)置的DEBUG 參數(shù)可以在下面的路徑進(jìn)行設(shè)置:工程->Target->Build Setting ->Preprocessor Macros。默認(rèn)系統(tǒng)已經(jīng)給出了DEBUG的參數(shù)。如果要增加新的參數(shù),則在哪里進(jìn)行增加。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在iOS開發(fā)過程中,我們經(jīng)常要用到NSLog來打印一些調(diào)試信息,而且一般是習(xí)慣性的大量使用,在模擬器上運(yùn)行可能沒有...
    _TT_閱讀 1,973評(píng)論 0 1
  • 在pch文件里編寫如下代碼 //消除文件中的nslog函數(shù) #ifdef __OPTIMIZE__ #define...
    審判spp閱讀 360評(píng)論 0 1
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,544評(píng)論 19 139
  • 因?yàn)橐Y(jié)局swift3.0中引用snapKit的問題,看到一篇介紹Xcode8,swift3變化的文章,覺得很詳細(xì)...
    uniapp閱讀 4,859評(píng)論 0 12
  • ?1 這次游輪行,我和曲瑋瑋(微信公眾號(hào):曲瑋瑋)一個(gè)房間,機(jī)會(huì)也是瑋瑋幫我爭取的,覺得好久沒聚了,大家可以一起出...
    楊小米閱讀 657評(píng)論 0 8

友情鏈接更多精彩內(nèi)容