我在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是否会在泄漏中显示出来。但事实并非如此。
答案 0 :(得分:0)
在ARC中,如果为现有变量分配新值,则会指向新值,并且会收集并释放之前的值(现在没有所有者)。
例如:
如果我们有self.textField.text = @"Rayman"
如果我们将新值指定为self.textField.text = @"Mister Dark"
。此时释放了先前的值@"Rayman"
。这就是为什么你看到在方法结束时,你看到分配的内存被释放,因为那些内存没有所有者。
[图片来自here]