2011-04-29 27 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