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」が所有する方法でブロックを保存しないため、ここで保持サイクルのリスクはありません。

それを考えると、質問はあなたが何をしたいですか? pageIndex をインクリメントできるようにするために self を維持する必要がある場合は、強力な参照を使用します。自己がまだ生きている場合にのみインデックスをインクリメントする必要がある場合は、弱参照を使用します。

(編集): また、ここにはグローバル変数は含まれていません。グローバル変数、ローカル変数、およびインスタンス変数の違いを読みたいと思うかもしれません。

于 2013-11-09T01:03:31.950 に答える