【发布时间】:2011-12-02 04:34:56
【问题描述】:
我有一些这样的代码:
#define FORCE_DEBUG_MODE [[[NSUserDefaults standardUserDefaults] valueForKey:@"forceDebugMode"] isEqualToString:@"1"]
#if defined DEBUG_MODE || defined FORCE_DEBUG_MODE
#define DLog( s, ... ) NSLog( @"<%p %@:(%d)> %@", self, [[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__] )
#else
#define DLog( s, ... )
#endif
我从外面的一些文章中读到使用预处理 marcos 来定义 DEBUG_MODE,但是如果我将 NSUserDefaults 值设置为某个值,我想覆盖该模式。
这些代码没有错误。但似乎无论 FORCE_DEBUG_MODE 是什么,defined FORCE_DEBUG_MODE 都等于 true。我想要的是FORCE_DEBUG_MODE == 1
请告诉我是否可以这样做,以及如何做?
【问题讨论】:
标签: objective-c xcode c-preprocessor