Iphone 如何在NSOperationQueue中设置优先级以执行下一个操作,直到上一个操作完成?

Iphone 如何在NSOperationQueue中设置优先级以执行下一个操作,直到上一个操作完成?,iphone,cocoa-touch,ipad,nsoperation,nsoperationqueue,Iphone,Cocoa Touch,Ipad,Nsoperation,Nsoperationqueue,如何在NSOperationQueue中设置优先级,使其在上一个操作完成之前不执行下一个操作 NSOperationQueue *operationQueue = [[NSOperationQueue alloc] init]; [operationQueue setMaxConcurrentOperationCount:1]; NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTa

如何在NSOperationQueue中设置优先级,使其在上一个操作完成之前不执行下一个操作

   NSOperationQueue *operationQueue = [[NSOperationQueue alloc] init];
  [operationQueue setMaxConcurrentOperationCount:1];
   NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(addPhotoWithButton:) object:button];
  [operationQueue addOperation:operation];
  [operation release];

假设您的意思是希望以串行方式或一次执行一个操作,那么我认为您的问题在于使用1调用setMaxConcurrentOperationCount:,然后使用另一个操作队列覆盖该操作队列,从而丢失对该操作队列的引用。因此,您所做的是正确的,您只需要将操作添加到具有所需操作计数的队列中。您可能不是有意这样做的,事实上,我认为您会看到编译器警告。请尝试以下代码:

NSOperationQueue *operationQueue = [[NSOperationQueue alloc] init];
[operationQueue setMaxConcurrentOperationCount:1];
NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(addPhotoWithButton:) object:button];
[operationQueue addOperation:operation];
[operation release];

这句话令人困惑,我怀疑您的意思是“如何在NSOperationQueue中设置优先级,使其在上一个操作完成之前不执行下一个操作?”。注意添加的“不”。如果确实如此,那么您应该更新您的问题。