如何使用#ifdef指令生成调试代码。 Objective-C的

时间:2011-04-29 20:03:11

标签: objective-c debugging conditional-compilation

我想提出一个关于使用#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

但我收到错误,因为在合成中editorIsDraggededitorIsSelected未定义。 如果我尝试定义自己的setter / getter方法,我会收到相同的错误,因为我的vars(editorIsDraggededitorIsSelected)对于XCode不存在!

我在C中使用此方法只写调试代码,但在obj-c中我必须使用什么?

谢谢你!

1 个答案:

答案 0 :(得分:1)

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

相关问题