2009-08-27 13 views
12

私の.hファイル内の@interface定義内にBOOL値があります。ここにそれがあります。それはポインタであろうとなかろうと、同じ問題を抱えています。私の.hファイルのインポートの行に:私はコンパイルするときエラー: '保持'属性を持つプロパティ 'myBoolVariableName'がオブジェクト型である必要があります

@interface myCustomViewController : UIViewController <UIWebViewDelegate> { 
{ 
//...more iboutlets defined above 
BOOL *myBoolVariableName; 
} 

、私は「属性がオブジェクト型である必要があります 『維持』を持つプロパティ 『myBoolVariableName』エラー」を得ます。

私は整数/のNSNumberについてはこちらこのページを発見:

http://discussions.apple.com/thread.jspa?threadID=1846927

だから、私が@interface定義内BOOL値を使用することはできませんようです。代わりに私は何を使うことができますか?

BOOL /ブール値はどうすればよいですか?私は推測している

答えて

33

は、後でインターフェイスで、あなたはこのようなものを持っている:

値はBOOLへのポインタであるのプロパティを作成し、セマンティクスを保持して使用することを意味
@property (retain) BOOL *myBoolVariableName; 

問題は、BOOL *はオブジェクトのポインタではなく、メモリのバイトへのポインタです。そして、保持はオブジェクトにのみ適用されるものです。

ここでは、BOOLプロパティを作成する方法を示します。

@interface myCustomViewController : UIViewController <UIWebViewDelegate> { 
    BOOL myBoolVariableName; 
} 

@property myBoolVariableName; 

@end 

重要な違いは、変数が「BOOL」として宣言されている、ではない「BOOLの*」およびプロパティが(保持)を持っていないということです。

+4

私はこのようにしなければなりませんでしたが、そうでなければあなたは正しく死んでいます。 :) ありがとうございました。 @property BOOL myBoolVariableName; – Neo42

+0

これは整数にも適用されます –

1

私は同様の状況に直面しています。私はそれを解決しました。

@interface myCustomViewController : UIViewController { 
BOOL myBoolVariableName; 
} 
@property BOOL myBoolVariableName; 
@end 

私は1つの答えをJon Hessが参照していますが、1つのエラーがあります。タイプ名には、指定子または修飾子が必要です。 私の以前のバージョンでは、だから私はBOOLを追加して問題を解決し

@property myBoolVariableName; 

、のようでした。

関連する問題