關於Debug下的Log打印問題


     在項目中為了調試經常會用到Log打印,比如打印當前方法__func__, 對象,地址等等,所以項目最后每次運行調試控制台滿滿的都是打印日志,到release發布的時候,顯然不太合適,這里其實可以用一個簡單的宏來解決。

1 #ifdef DEBUG
2 
3 #define DLog( s, ... ) NSLog( @"<%p %@:(%d)> %@", self, [[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__] )//分別是方法地址,文件名,在文件的第幾行,自定義輸出內容
4 
5 #else
6 
7 #define DLog(...)
8 
9 #endif

 

     注意在#else后,也就是release中一開始定義成NSLog(...)會報錯: Implicit declaration of function 'DLog' is invalid in C99。

 

原因: Release版本下所定義的DLog就成了一個空函數,在鏈接的是時候會報錯。

 

參考:  http://stackoverflow.com/questions/29234725/implicit-declaration-of-function-dlog-is-invalid-in-c99

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM