在X-code做開發(fā)調(diào)試往往需要打印一些調(diào)試信息做debug用,大家都知道打印信息的地方多了之后再模擬器上跑可能不會有什么問題,因為模擬器用的是電腦的硬件。但是,當(dāng)應(yīng)用在設(shè)備上運(yùn)行時這些輸出語句會很大程度上影響應(yīng)用的性能。針對這種問題可以寫一些宏(一改全改)來調(diào)試這些調(diào)試語句信息的輸出。省得發(fā)布之前還得全工程搜索屏蔽這些暴力調(diào)試語句。
為什么發(fā)布之前要屏蔽NSLog
- NSLog 消耗系統(tǒng)資源(暴力調(diào)試)
- 輸出數(shù)據(jù)可能暴露app保密數(shù)據(jù)
在Release版本下禁止輸出NSLog內(nèi)容
在預(yù)處理文件(.pch)添加下面代碼塊
#if DEBUG
#define NSLog(...) NSLog(__VA_ARGS__)
#define debugMethod() NSLog(@"%s",__func__)、
#else
#define NSLog(...)
#define debugMethod()
#endif
上面代碼的意思就是: 用宏指令做一個判斷,如果DEBUG為真,則編譯#ifdef到#endif宏定義,否則編譯器就不編譯。
如何設(shè)置DEBUG和RELEASE
x-code正上面工具欄product->Scheme->Edit Scheme->Bulid Configuration設(shè)置成debug,此刻打印NSLog,如果設(shè)置成release,不打印NSLog。