Objective c块会保留UI自动释放问题吗?

时间:2012-06-26 16:21:16

标签: ios user-interface block autorelease

我了解目标C将保留localVariable

id localVariable = instanceVariable;

dispatch_async(queue, ^{
    // localVariable is used by value, localVariable is retained (not self)
    doSomethingWithObject(localVariable);
});

但是这个保留是在块被触发时发生的吗?如果是这样,虽然localVariable是一个UI对象,例如UIViewController,可能由自动释放池控制,但如果我只创建一个由自动释放池管理的UIViewController而不保留或使用它,当一个事件循环结束时,它将被释放,然后在块内,我不能再使用这个UIViewController了?我必须在块外手动保留它?

1 个答案:

答案 0 :(得分:1)

不,创建块时,块将保留localVariable