2011-10-21 5 views
0

変数を定義する次の方法の違いは何ですか?intance変数と@propertyの定義

@interface MyClass: NSObject 
{ 
    NSString *string; 
} 

@property (nonatomic, strong) NSString *string; 

@interface MyClass: NSObject 

@property (nonatomic, strong) NSString *string; 

私は@propertyは(@synthesizeと一緒に)セッターとゲッターの世話をすると、私は両方の方法がうまく動作することを知っていることを知っています。 NSArray、NSDictionaryでは後者の方法ではうまくいきません。しかし、それはIBにリンクされたIBOutletsのために働く。

alloc/initには何かがありますか?または、私が完全に逃しているという概念があるかもしれませんか?

ありがとうございました。

+0

現代のプログラムでは、もはやivarsを明示的に宣言することはほとんどありません。パフォーマンス上の理由から私がivarを使用するつもりでも、私はivarを自動合成するプロパティを作成します。そして、ivarが自動合成されたときに、あなたの実装に '@ synthesize'行を明示的に含まない限り、ivarには先頭のアンダースコア(' _string')があります。 – Gavin

答えて