我試圖在發佈版本中禁用NSLog。#define NSLog(...)仍然打印輸出到控制檯
我把下面的代碼.PCH文件
的#ifndef __OPTIMIZE__
#定義的NSLog(...)的NSLog(__ VA_ARGS__)
的#else
#定義的NSLog(...) {}
#ENDIF
它不工作,所以我試圖
#定義的NSLog(...){}
它仍然打印輸出到控制檯。
任何幫助將是好的,謝謝!
我試圖在發佈版本中禁用NSLog。#define NSLog(...)仍然打印輸出到控制檯
我把下面的代碼.PCH文件
的#ifndef __OPTIMIZE__
#定義的NSLog(...)的NSLog(__ VA_ARGS__)
的#else
#定義的NSLog(...) {}
#ENDIF
它不工作,所以我試圖
#定義的NSLog(...){}
它仍然打印輸出到控制檯。
任何幫助將是好的,謝謝!
確保__OPTIMIZE__
在構建設置中定義或.PCH文件本身上漲和PCH文件在前綴頭(GCC_PREFIX_HEADER)設置構建設置。您還可以定義的NSLog(...)如無
#define NSLog(...)
你會宣稱自己的日誌功能,並使用它。它的實現可以通過NSLogv,如果你想要一個名單。它的實現也不會在禁用時將消息轉發給NSLogv,因此您可能需要多於一種記錄器。
聽起來像你想要的類似於DLog的這個定義從this previous SO answer on NSLog tips and tricks。在其項目的構建設置
#ifdef DEBUG
# define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
# define DLog(...)
#endif
預處理宏設置:DEBUG = 1 $(繼承)
所以,現在只需使用:如果(調試)的NSLog(@ 「你的日誌」);
在您的應用程序.pch文件中放入以下行。 define NSLog(dese,...)
它將停止打印。
你應該打開'NDEBUG',而不是'__OPTIMIZE__'。 – jww 2015-01-23 17:09:01