自动参考计数不起作用

时间:2012-02-14 10:39:10

标签: ios automatic-ref-counting

  

可能重复:
  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生成预处理输出时,似乎没有任何改变!

1 个答案:

答案 0 :(得分:0)

我怀疑是循环依赖。

仪器可以帮助您定位它们。