2012-01-10 3 views
0

次の例では、NSObject *_propertyName;が必要ですか?@synthesize propertyName = _propertyNameの場合、ivarはプロパティに必要です。

の.h

@interface ClassName 
{ 
    NSObject *_propertyName; 
} 

@property (nonatomic, retain) NSObject *propertyName; 

@end 

.M

@implementation ClassName 

@synthesize propertyName = _propertyName; 

@end 

私はNSObject *_propertyName;を除外したが続ければ@synthesize propertyName = _propertyName;すべてが動作することを見つけます。ここで私が話しているかの例です:私がテストし、プロパティがまだ動作していることを見てきました.h

@interface ClassName 

@property (nonatomic, retain) NSObject *propertyName; 

@end 

.M

@implementation ClassName 

@synthesize propertyName = _propertyName; 

@end 

。私はほとんどいつもラインNSObject *_propertyName;を含むコードを見る。私がここで紛失しているものはありますか?

+1

投稿する前に検索してください。これをカバーするgazillionと半分の質問はすでにあります。ここにそのようなものがあります:http://stackoverflow.com/questions/8330257/is-it-necessary-to-declare-ivars-in-interface-to-match-properties –

+1

これ以上の検索があります:http:///stackoverflow.com/search?q=%5Bobjc%5D+declare+ivars+for+propertiesこれらのうちのいくつかは右側の関連サイドバーにあり、質問の起草時に表示されます。 –

+1

この回答を投稿する前に多くの検索を行いました。他の質問は何も出てこなかった。再投稿して申し訳ありませんが、私は本当に答えを見つけようとしました。 – Nate

答えて

3

あなたは何も見逃していません。より新しいランタイム(新しいiOS Simulator、x86_64、ARM)から、ivarを手動で宣言する必要はなくなりました。 i386とPPCでそれ以前には、あなたは手動であなたのivarsを宣言しなければなりませんでした。

関連する問題