我应该继续在自动参考计数(ARC)下使用iVar和@property(非原子,保留)加@synthesize吗?

Ben*_*Ben 9 ios xcode4 ios5 automatic-ref-counting

就像一个doop我已经在接口.h文件中声明了Instant Variables(iVar)然后@property一段时间了.

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

在自动引用计数下,我应该省去iVar并全部使用@property吗?我是否应该在财产中使用"保留"一词?如果我正在部署iOS 4.3,我还应该使用ARC吗?

5St*_*yan 10

感觉不像是一个doop,即使编译器会为你添加ivars如果你不包含它们,很多人仍然声明它们(许多书籍作者也是如此)使代码更容易阅读(更容易区分ivar和财产).

现在创建属性时,Apple希望您根据对象图进行思考,因此对"强"和"弱"属性属性进行一些研究而不是保留和释放.

此外,iOS 4被设置为ARC的目标,所以你应该没问题.但我相信如果您想支持iOS 3.0,您必须像以前一样手动管理保留和发布.

  • `@property(非原子,强)UserFactorsViewController*userFactorsViewController;``@property(非原子,强)IBOutlet UITableView*myTableView;` (2认同)
  • 这篇博文可能有助于理解ARC http://longweekendmobile.com/2011/09/07/objc-automatic-reference-counting-in-xcode-explained/ (2认同)
  • 如果您运行编辑>重构>转换为ARC工具,它将实际转换您的所有属性. (2认同)