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