启用ARC的iOS中的内存管理

时间:2013-01-10 09:56:46

标签: memory-management

我在xxxviewcontroller.m中有以下代码,temp是.h文件中的UIImageView实例变量。

- (IBAction)buttonclicked:(id)sender {

  for (int i=0; i<=100; i++)
   {
     temp = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"sample.png"]];
  }

}

因此,对于for循环中的每次迭代,我们都应该有一个悬空指针,因为temp被重新分配,而前一个ins.In乐器我看到单击按钮时内存会升高,但很快又回到了结束后的状态。方法。此视图控制器是导航控制器堆栈上的firstviewcontroller。我想检查一下insturments是否会在泄漏中显示出来。但事实并非如此。

1 个答案:

答案 0 :(得分:0)

在ARC中,如果为现有变量分配新值,则会指向新值,并且会收集并释放之前的值(现在没有所有者)。
例如:
如果我们有self.textField.text = @"Rayman"

enter image description here

如果我们将新值指定为self.textField.text = @"Mister Dark"。此时释放了先前的值@"Rayman"。这就是为什么你看到在方法结束时,你看到分配的内存被释放,因为那些内存没有所有者。

enter image description here

[图片来自here]