たとえば、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
ですか?
op1
2)スワップアラウンドすると、プログラムは実際に何をしop2
ますか?(op2
後で実行する必要op1
がありますが、キューは操作から同時に1つしか取得できません)
PS私のアプリケーションでは、私が使用していますAFHTTPRequestOperation
。その継承階層:
AFHTTPRequestOperation
-> AFURLConnectionOperation
->NSOperation
したがって、単に の他のサブクラスを取得することはできませんNSOperation
。