self.property:在没有内存泄漏的情况下初始化对象

时间:2013-11-14 14:47:52

标签: ios objective-c

我正在使用ARC并拥有强大的属性:

@property (strong, nonatomic) WebViewController *webViewController;

我合成它,并像它一样初始化

//since ARC is used, is this ok?
self.webViewController = [[WebViewController alloc]init];

如果我继续这样做会发生什么,例如在applicationDidBecomeActive:

- (void)applicationDidBecomeActive:(UIApplication *)application
{
  self.webViewController = [[WebViewController alloc]init];
  self.window.rootViewController = self.webViewController;
}

我认为它必须导致内存泄漏导致每次应用从后台激活时都会创建WebViewController的新实例。我有多个实例吗?或者,如果我“覆盖”self.webViewController

,旧实例是否会被删除/释放

1 个答案:

答案 0 :(得分:4)

当您覆盖属性的值时,前一个值将被释放:在内部,其保留计数减少一个。如果在其他地方没有更强的引用,那么它将被取消分配。