2011-04-29 23 views
0

我想提出一个关于使用#ifdef指令进行开发的问题。如何使用#ifdef指令进行调试代码。 Objective-c

我想要做的做在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 

但由于synthetize editorIsDraggededitorIsSelected没有定义我receve错误。 如果我尝试定义自己的setter/getter方法,则会收到相同的错误,因为我的变量(editorIsDraggededitorIsSelected)对于XCode不存在!

我在C使用这种方法只写调试代码,但在obj-c我必须使用?

谢谢!

回答

1

难道你不应该把你的#define DEBUG_LEVEL放在一个头文件中,它被包含在所有需要知道的地方吗?就像在构建设置中设置或放入* .pch一样。而且我不确定这是否是一个错字,但是在这里的代码中也有#define #DEBUG_LEVEL(请参阅第二个散列?)。

+0

是的,我尽力! – BQuadra 2011-04-29 20:44:44

+0

ops ...对不起。你是对的!解决了! – BQuadra 2011-04-29 20:55:04

+0

此外,NDBEUG(无调试)是用于这类事情的标准宏,尽管在双重否定条件下它可能会变得有点丑陋。 – 2011-05-02 11:40:21