開發過程當中常常會伴隨着NSLog的調試打印信息,可是:一方面NSLog會佔用一些系統的資源,另一方面,在發佈到商店,用戶下載運行在設備上用戶也看不到,因此通常在上線的時候須要把這些NSLog的代碼「刪掉」,其實就是想讓它不執行,若是把他們所有刪除又會致使接下來的開發調試得從新寫NSLog,同時刪除也會浪費一部分開發同窗的精力,那咱們能夠使用 spa
__OPTIMIZE__
來解決這個問題。 debug
// 以release模式編譯的程序不會用NSLog輸出,而以debug模式編譯的程序將執行NSLog的所有功能。 調試
#ifndef __OPTIMIZE__
# define NSLog(...) NSLog(__VA_ARGS__)
#else
# define NSLog(...)
#endif code
或 blog
#ifdef __OPTIMIZE__
#define NSLog(...)
#endif 資源
這個代碼的魔術在於:release模式一般會定義 __OPTIMIZE__,debug模式不會。 開發
將這段代碼放在頭文件當中,就能夠放心的使用NSLog了! get
把這些代碼放到*Prefix.pch中最省事。能夠把這段宏定義放到一個頭文件中,再把這個頭文件包含到*Prefix.pch中。 編譯
原文:http://lichen1985.com/blog/?p=251 class