1. 程式人生 > >僅在Debug模式下編譯NSLog

僅在Debug模式下編譯NSLog

前提NSLog

在XCode做開發除錯debug時往往需要列印NSLog一些除錯資訊,當列印資訊的地方多了之後在模擬器上跑可能不會有什麼問題,因為模擬器用的是電腦的硬體但是當應用跑在裝置上時這些輸出語句會在很大程度上影響應用的效能,針對這種問題可以寫一些巨集來控制這些除錯資訊的輸出。

在release版本禁止輸出NSLog內容

步驟一:在 "Target > Build Settings > Preprocessor Macros > Debug" 設定"DEBUG=1"即


步驟二:加入框架:#import <Foundation/Foundation.h>,在xx-Prefix.pch檔案或者Header.h檔案中加入程式碼:

#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#endif

#ifdef DEBUG
#define DLog( s, ... ) NSLog( @"<%@:(%d)> %@", [[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__] )
#else
#define DLog( s, ... )
#endif

這樣就可以直接在程式碼中直接使用DLog代替NSLog了。很久的內容了,現在才奉上