可能重复:
Why is object not dealloc'ed when using ARC + NSZombieEnabled
我必须在这里做错事。编译器设置为Apple LLVM Compiler 3.0,Objective-C自动引用计数设置为YES。我还包含第三方软件,要求ARC处于活动状态。
所以我的基本问题是我的财产没有被释放。我有以下标题:
@interface ArchiveController : UIViewController <CloseSubviewDelegate> {
NSArray *journals;
NSMutableArray *archiveViews;
}
@property (nonatomic, strong) NSArray *journals;
@property (nonatomic, strong) NSMutableArray *archiveViews;
....
@end
我合成了这些并初始化了archiveViews数组,如下所示:
self.archiveViews = [NSMutableArray array];
后来我添加了对象,一切正常;同样适用于期刊数组。
我添加了一个dealloc方法来检查ArchiveController是否已发布:
-(void)dealloc
{
DLog(@"dealloc archive controller");
}
有效,但数组从未发布;为什么?如果我将dealloc方法更改为:
-(void)dealloc
{
DLog(@"dealloc archive controller");
self.archiveViews = nil;
}
一切正常,但那不是应该的样子,对吗?我100%确定数组及其对象在其他任何地方都没有被引用。
并不是预处理器应该处理所有retainins / releases / deallocs的插入?当我让Xcode生成预处理输出时,似乎没有任何改变!
答案 0 :(得分:0)
我怀疑是循环依赖。
仪器可以帮助您定位它们。