【问题标题】:Objective c block will retain UI autorelease issue?Objective c 块会保留 UI 自动释放问题吗?
【发布时间】:2012-06-26 16:21:16
【问题描述】:

我明白Objective 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 了?我必须在块外手动保留它?

【问题讨论】:

    标签: ios user-interface block autorelease


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多