如何使用#ifdef 指令制作调试代码。目标-c
•浏览 1
How to make debug code using #ifdef directive. Objective-c
我想提出一个关于使用#ifdef 指令进行开发的问题。
我想在 Objective-c 中编写一些代码仅用于调试,例如:
在主函数中这样做:
#define DEBUG_LEVEL
#ifdef DEBUG_LEVEL
BOOL editorIsDragged;
BOOL editorIsSelected;
#endif
#ifdef #DEBUG_LEVEL
@property (nonatomic, readwrite) BOOL editorIsDragged;
@property (nonatomic, readwrite) BOOL editorIsSelected;
#endif
#ifdef #DEBUG_LEVEL
@synthetize editorIsDragged, editorIsSelected;
#endif
在我的界面中这样做:
#define DEBUG_LEVEL
#ifdef DEBUG_LEVEL
BOOL editorIsDragged;
BOOL editorIsSelected;
#endif
#ifdef #DEBUG_LEVEL
@property (nonatomic, readwrite) BOOL editorIsDragged;
@property (nonatomic, readwrite) BOOL editorIsSelected;
#endif
#ifdef #DEBUG_LEVEL
@synthetize editorIsDragged, editorIsSelected;
#endif
....其他属性
#define DEBUG_LEVEL
#ifdef DEBUG_LEVEL
BOOL editorIsDragged;
BOOL editorIsSelected;
#endif
#ifdef #DEBUG_LEVEL
@property (nonatomic, readwrite) BOOL editorIsDragged;
@property (nonatomic, readwrite) BOOL editorIsSelected;
#endif
#ifdef #DEBUG_LEVEL
@synthetize editorIsDragged, editorIsSelected;
#endif
然后在我的实现中这样做:
#define DEBUG_LEVEL
#ifdef DEBUG_LEVEL
BOOL editorIsDragged;
BOOL editorIsSelected;
#endif
#ifdef #DEBUG_LEVEL
@property (nonatomic, readwrite) BOOL editorIsDragged;
@property (nonatomic, readwrite) BOOL editorIsSelected;
#endif
#ifdef #DEBUG_LEVEL
@synthetize editorIsDragged, editorIsSelected;
#endif
但我收到一个错误,因为在合成中 editorIsDragged 和 editorIsSelected 没有定义。
如果我尝试定义自己的 setter/getter 方法,我会收到相同的错误,因为 XCode 不存在我的变量(editorIsDragged 和 editorIsSelected)!
我在 C 中使用这种方法只编写调试代码,但在 obj-c 中我必须使用什么??
谢谢!
您不应该将您的#define DEBUG_LEVEL 放在一个头文件中,该头文件会包含在所有需要知道它的地方吗?就像在构建设置中设置或放入 *.pch 一样。而且我不确定这是否是一个错字,但您在此处的代码中还有#define #DEBUG_LEVEL(请参阅第二个哈希?)。