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