? ? ? ?在項(xiàng)目的過程中,經(jīng)常遇到要在調(diào)試的時候打印log,但是上線或是release 的時候不需要去顯示log 的情況,此時你辛辛苦苦寫了那么多的log,你要么就手動注釋掉,要么就是設(shè)一個開關(guān)變量,企圖用這個總開關(guān)開啟。其實(shí)可以充分利用宏定義進(jìn)行設(shè)置
? ? ? ?步驟比較簡單,只需要 在ProjectName_Prefix.pch 中追加你對應(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版本,這里簡單說下這兩個版本的差異。
release 是發(fā)行版本,比debug版本要小一些,他們調(diào)用兩個不同底層庫,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)行增加。