1

たとえば、3 つのオブジェクトがあります。

NSOperation *op1 = ...;
NSOperation *op2 = ...;
NSOperation *op3 = ...;

[op3 addDependency:op2];
[op2 addDependency:op1];

NSOperationQueue *queue = ...;
queue.maxConcurrentOperationCount = 1;
[queue addOperations:@[op1, op2, op3] waitUntilFinished:NO];

すべての操作を正しい順序で追加するだけです。しかし、たとえば がキャンセルされた場合op2は、キャンセルする必要がありop3、この場合キューを完全にクリアすることはできません。

私の質問:

1) そのような一連の操作を と組み合わせても安全maxConcurrentOperationCount == 1ですか?

op12)スワップアラウンドすると、プログラムは実際に何をしop2ますか?(op2後で実行する必要op1がありますが、キューは操作から同時に1つしか取得できません)

PS私のアプリケーションでは、私が使用していますAFHTTPRequestOperation。その継承階層:

AFHTTPRequestOperation-> AFURLConnectionOperation->NSOperation

したがって、単に の他のサブクラスを取得することはできませんNSOperation

4

1 に答える 1