【发布时间】:2014-09-22 00:12:44
【问题描述】:
我的代码如下,在 IOS7.1 的 ARC 下。
void function
{
for (int i = 0; i < 100000; i++)
{
UIImage *buttonBar_test = [[UIImage alloc] init];
//[buttonBar_test release];
}
}
虽然 ref 计数下降到 0,但临时对象(buttonBar_test)仍然存在,在函数返回后未被系统释放。为什么?
![在仪器->分配中,启用“记录引用计数”][1]
![函数返回后,临时对象还活着,很奇怪?!][2]
![引用计数降至 0,但没有对对象调用“free”,因此对象仍然存在][3]
我创建了一个演示项目,这个问题不存在。但在我自己的项目中,它存在。不知道为什么,有没有和这个问题相关的配置?
(另外,我自己的项目链接了一些未启用 arc 的 3rd 方依赖项,但在我的全局链接器标志设置中,它包含:-fobjc-arc)
【问题讨论】:
标签: ios objective-c automatic-ref-counting dealloc