2011-08-23 7 views
9

Doopのように、私はインスタント変数(iVar)を宣言していましたが、インターフェイスの.hファイルで@propertyをしばらく宣言していました。Automatic Reference Counting(ARC)の下でiVarと@property(nonatomic、retain)と@synthesizeを使用し続ける必要がありますか?

@interface MainGameViewController : UIViewController { 
    UserFactorsViewController *userFactorsViewController; 
    UITableView *myTableView; 
} 
@property (nonatomic, retain) UserFactorsViewController *userFactorsViewController; 
@property (nonatomic, retain) IBOutlet UITableView *myTableView; 

自動参照カウントでは、iVarを使用せずに@propertyをすべて使用する必要がありますか?私は財産の中に「保持」という言葉を持っているべきですか? iOS 4.3用にデプロイする場合は、引き続きARCを使用する必要がありますか?

答えて

10

doopのような気がしないでください。コンパイラがあなたにイーバールを追加しても、あなたにはイーグルスが追加されますが、多くの人がまだそれらを宣言しています(多くの本作家もそうです)。 read(ivarとpropertyの区別が容易)。

プロパティを作成する際、Appleはオブジェクトグラフの観点から考える必要がありますので、保持と解放の代わりに「強」と「弱」の属性属性についていくつかの調査を行います。

また、iOS 4はARCのターゲットとして設定されていますので、確認してください。しかし、もしあなたがiOS 3.0をサポートしたいのであれば、以前と同じように、保持とリリースを手動で管理しなければならないと思います。

+0

ありがとうございました。しかしARCの下でそれを行う "正しい"方法は何ですか?私は財産しか持たず、残りを世話するように合成すべきですか?私は持っているすべてのSTRONGオブジェクト変数のプロパティ(非構造)を入れます。 – Ben

+2

'@property(nonatomic、strong)UserFactorsViewController * userFactorsViewController;' '@property(nonatomic、strong)IBOutlet UITableView * myTableView;' – 5StringRyan

+0

ありがとう、ハンス。感謝します。 – Ben

関連する問題