0

したがって、私はaddOperationWithBlock^{}NSOperationQueue のメソッドを使用しており、操作コードのポイントにきめ細かいisCancelledプロパティ チェックを配置したいと考えています。このブロック内で実行される操作のインスタンスを取得するにはどうすればよいですか?

たとえば、これは私のコード スニペットです。

[operationQueueInstance addOperationWithBlock:^{
    if (!???.isCancelled){
        NSlog(@"Instruction 1");
    }
    if (!???.isCancelled){
        NSlog(@"Instruction 2");
    }

    NSlog(@"Instruction 3");
 }];

isCancelled命令のプロパティを評価できるように、このブロックが実行される操作のインスタンスを取得するにはどうすればよいですか?

ティア

4

1 に答える 1

1

アップルのドキュメントから:

新しく作成された操作オブジェクトへの参照を取得したり、その型情報を推測したりしないでください。

NSBlockOperationをインスタンス化し、それを変数に割り当てて、代わりに明示的な参照を保持することができます。

addOperationWithBlock操作オブジェクトへの参照が必要ないときのショートカットのようです。

__block保持サイクルを回避するために、必ずストレージ修飾子でブロック操作をマークしてください。

于 2013-05-13T09:54:47.903 に答える