独自の NSOperation サブクラスを作成しましたが、そのインスタンスの一部を並行して実行したいと考えています。それは私が上書きした同時操作であるため
- (void)start {
[self willChangeValueForKey:@"isExecuting"];
isExecuting = YES;
[self didChangeValueForKey:@"isExecuting"];
error=NO;
startedSection=NO;
// start the task
[task launch];
}
- (BOOL)isConcurrent {
return YES;
}
- (BOOL)isExecuting {
return isExecuting;
}
- (BOOL)isFinished {
return isFinished;
}
操作が終了すると、次のコードが実行されます。
[self willChangeValueForKey:@"isExecuting"];
[self willChangeValueForKey:@"isFinished"];
isExecuting = NO;
isFinished = YES;
[self didChangeValueForKey:@"isExecuting"];
[self didChangeValueForKey:@"isFinished"];
どの操作にも操作を追加[myQueue waitUntillAllOperationsAreFinished]
した後に追加するmyQueue
と、開始さえしません! を削除する[myQueue waitUntillAllOperationsAreFinished]
と、メインスレッドがこれらの操作に干渉するためにエラーが発生する可能性があるという事実を除いて、必要なものが得られます...