NSOperationQueue* queue = [[ NSOperationQueue alloc ] init];
queue.maxConcurrentOperationCount = 1;
NSOperation* someOperation = [NSBlockOperation blockOperationWithBlock:^(void) { NSLog(@"Done.");}];
if (queue.operations.count != 0)
[someOperation addDependency: queue.operations.lastObject];
あなたは、単にあなたのNSOperationQueueにカテゴリを追加することができます。
@interface NSOperationQueue (FIFOQueue)
- (void)addOperationAfterLast:(NSOperation *)op;
@end
@implementation NSOperationQueue (FIFOQueue)
- (void)addOperationAfterLast:(NSOperation *)op
{
if (self.maxConcurrentOperationCount != 1)
self.maxConcurrentOperationCount = 1;
NSOperation* lastOp = self.operations.lastObject;
if (lastOp != nil)
[op addDependency: lastOp];
[self addOperation:op];
}
@end
をし、[キューaddOperationAfterLast:myOperation]を使用します。
感謝を使用してみてください、私はcompletionHandlerを呼び出す必要があり;.私はあなたの方法を使ってこれを行う方法がありません –