0

我知道目标 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了?我必须在块外手动保留它?

4

1 回答 1

1

不,localVariable将在创建块时由块保留。

于 2012-06-27T08:57:57.287 回答