0
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
    self.pageIndex++;
});

或者

__weak someController *weakSelf = self;
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
    weakSelf.pageIndex++;
});

我感到很困惑。哪个是对的?谢谢你。

4

1 回答 1

2

dispatch_after 不会以“self”拥有的方式存储块,因此这里没有保留周期的风险。

鉴于此,问题变成了你想要发生什么?如果 self 应该保持活动状态以确保它的 pageIndex 可以增加,请使用强引用。如果只有在 self 还活着的情况下才应该增加索引,请使用弱引用。

(编辑):另外,这里不涉及全局变量。您可能想了解全局变量、局部变量和实例变量之间的区别。

于 2013-11-09T01:03:31.950 回答