【发布时间】:2014-04-08 22:39:45
【问题描述】:
我做了一个简单的实验,发现了一些奇怪的行为。这里有一些代码 - 启用 ARC 的 long 方法的一部分:
MKObject *obj = [[MKObject alloc]init];
NSMutableArray *temp = [[NSMutableArray alloc]init];
[temp addObject:obj];
obj = nil;
temp = nil;
//here deallocating is called on obj (MKObject)
//other stuff
但如果我将 NSMutableArray 更改为 NSArray 并进行文字初始化
NSArray *temp = @[obj];
在自动释放池关闭之前执行解除分配,而不是在将 nil 设置为所有引用之后执行。我错过了什么吗?
【问题讨论】:
标签: objective-c