可以__weak在块的中间自我转nil?

Mon*_*eur 0 objective-c grand-central-dispatch ios objective-c-blocks

__weak self在我的块中使用在后台线程上运行的引用时,我是否只需要nil在开始时检查,或者__weak self在第一次nil测试通过后执行期间甚至可以变为nil ?我想从self块中访问一些ivars ,我需要在块执行时的最新值.

Pau*_*l.s 6

如果没有人持有参考,self那么是.您可以通过在块中使用强引用来缓解此问题

__weak __typeof(self) weakSelf = self;

^{
  __strong __typeof(weakSelf) strongSelf = weakSelf;
  if (!strongSelf) {
    return;
  }
};
Run Code Online (Sandbox Code Playgroud)