當(dāng)我們提交代碼后者程序上線的時(shí)候會(huì)遇到這樣的問(wèn)題,刪除程序調(diào)試階段的 NSLog代碼,如果我一行一行的刪除的話,可以在搜索欄里找到所有的 NSLog 關(guān)鍵字,一個(gè)一個(gè)刪除,但是這樣有失"尊嚴(yán)",一起工作的小伙伴兒經(jīng)常有這種情況發(fā)生~現(xiàn)在我把我自己的方法和結(jié)合網(wǎng)上一些優(yōu)秀的程序猿的方法結(jié)合一下給大家分享一下:
- 創(chuàng)建 PCH 文件(預(yù)編譯文件)
-
command + N 創(chuàng)建一個(gè)預(yù)編譯文件:點(diǎn)擊次序依次為: iOS-->Other-->PCH File
2.左側(cè)"主 bundle" 欄會(huì)出現(xiàn)如下文件:
在 PCH 文件中鍵入內(nèi)容如下所示:
具體要謝謝的內(nèi)容和注釋我都一一寫(xiě)清楚,希望大家都能看懂!
- 此時(shí)打印發(fā)現(xiàn)原來(lái)的 NSLog 變色了,變成了宏定義的顏色:
- command + R 運(yùn)行發(fā)現(xiàn)仍然能夠打印出hello world:
當(dāng)代嗎不在處于 debug 階段,變成 release 時(shí)候:
- 操作步驟如下所示:
2.選擇第一項(xiàng):Edit Scheme
3.Debug 模式切換為 Release模式:
此時(shí)我們?cè)俅芜\(yùn)行 command + R 發(fā)現(xiàn)調(diào)試區(qū)沒(méi)有打印內(nèi)容!這就是NSLog 的簡(jiǎn)單實(shí)用技巧!
下面這幅圖是我在網(wǎng)上查到的一位iOS老師使用的 NSLog 的高級(jí)使用技巧!請(qǐng)看圖-->個(gè)人覺(jué)得非常方便,所以分享給大家!
本圖的前提是你先要回到 Edit Scheme 里把 Release 切換回 Debug 模式:
最后我把 NSLog 調(diào)試中的 PCH 文件中的代碼復(fù)制下來(lái)分享給大家:
//保證 ifdef 中的宏定義只會(huì)在 OC 代碼中被引用;
//否則一旦引入 C 或者 C++ 代碼或者框架就會(huì)出錯(cuò)!
#ifdef __OBJC__
//只在開(kāi)發(fā)中用:
#ifdef DEBUG
//定義 NSLog(__VA_AGRS__):
//#define NSLog(...) NSLog(__VA_ARGS__)
#define NSLog(fmt, ...) NSLog((@"%s [Line %d]" fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
//如果在非 DEBUG 情況下:
#else
//NSLog(...)后面不跟任何內(nèi)容,在非 DEBUG 情況下(提交上線發(fā)布時(shí))該 NSLog(...)自動(dòng)失效!
#define NSLog(...)
//結(jié)束"ifdef DEBUG",有 以 ifdef 開(kāi)始就要有 endif 結(jié)束!就醬!
#endif
//結(jié)束"ifdef __OBJC__",有 以 ifdef 開(kāi)始就要有 endif 結(jié)束!就醬!
#endif