我想提出一个关于使用#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
但我收到错误,因为在合成中editorIsDragged
和editorIsSelected
未定义。
如果我尝试定义自己的setter / getter方法,我会收到相同的错误,因为我的vars(editorIsDragged
和editorIsSelected
)对于XCode不存在!
我在C中使用此方法只写调试代码,但在obj-c中我必须使用什么?
谢谢你!答案 0 :(得分:1)
你不应该将#define DEBUG_LEVEL放在一个头文件中,该文件包含在需要知道它的所有地方吗?就像在构建设置中设置或放入* .pch一样。我不确定这是不是一个错字,但你在这里的代码中也有#define #DEBUG_LEVEL(参见第二个哈希?)。