【发布时间】:2013-01-14 23:36:55
【问题描述】:
给定以下简单的实现:
@implementation RTUDeallocLogger
-(void)dealloc
{
NSLog(@"deallocated");
}
@end
我们在 ARC 下运行以下代码:
@implementation RTURunner
{
NSArray* arr;
}
-(void)run{
arr = [NSArray
arrayWithObjects:[[RTUDeallocLogger alloc]init],
[[RTUDeallocLogger alloc]init],
[[RTUDeallocLogger alloc]init],
nil];
NSLog(@"nulling arr");
arr = NULL;
NSLog(@"finished nulling");
}
@end
我们得到以下日志输出:
归零arr 完成归零 解除分配 解除分配 解除分配我想在所有解除分配完成后执行一个操作。这可能吗?
这个问题的目的是真正了解更多关于 ARC 的机制,特别是 ARC 在什么时候触发这些释放,以及当我删除引用时这是否会同步发生。
【问题讨论】:
标签: ios objective-c automatic-ref-counting dealloc