我了解目标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
了?我必须在块外手动保留它?
答案 0 :(得分:1)
不,创建块时,块将保留localVariable
。