【发布时间】:2013-03-19 13:47:30
【问题描述】:
为什么泄漏仪器告诉我这是泄漏?我正在使用 ARC。
我应该怎么做才能不泄漏?
顺便说一句,我尝试将“强”更改为“弱”,但随后收到警告 "Assigning retained object to weak property; object will be released after assignment"
@property (nonatomic, strong) NSMutableArray *myArray;
-(id)init{
self = [super init];
if (self){
_myArray = [[NSMutableArray alloc] init]; //<== leak here
}
return self;
}
【问题讨论】:
-
您确定
myArray泄漏了吗?也可能是它的所有者泄漏了 (self)。 -
是的,我用 _myArray 尝试过,但仍然泄漏(我更新了上面的代码以显示该示例)
-
@Harris:您指向的代码行没有泄漏。具有此属性的对象正在泄漏,或者您将数组传递给保留并泄漏它的其他代码。尝试打开对象分配工具,它可以跟踪此特定数组发生的所有保留/释放,您可以使用它来找出不平衡的位置。
-
这不是泄漏,使用 ARC,释放是在自动生成的 dealloc 方法中自动生成的。也许还有其他东西保留了该数组,因此它不会被释放。
标签: ios automatic-ref-counting memory-leaks