检查下面的代码,并假设它是根据ARC编译:
- (void)foo { NSOperationQueue *oq = [[NSOperationQueue alloc] init]; [oq addOperationWithBlock:^{ // Pretend that we have a long-running operation here. }]; }
虽然操作队列被声明为一个局部变量,其生命周期将一直连续超越法的范围,因为它已经运行的操作。
这是如何实现的?
更新:
我很欣赏罗布Mayoff的深思熟虑出来的意见,但我想我没有正确地问我的问题。 我不是问NSOperationQueue一个具体的问题,而是关于ARC对象的生命周期一般问题。 具体来说,我的问题是这样的:
怎么样,ARC下,可以将对象参与其自己的生命周期的管理?
我已经很长一段时间的程序员,我很清楚这样的事情的陷阱。 我不是在寻找待讲学,这是否是一个好或坏主意。 我想一般是一个坏的。 相反,我的问题是学术: 无论是好还是坏主意或没有,怎么会在ARC做到这一点,具体是什么语法,这样做呢?