0

如何在 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];
4

1 回答 1

1

假设您的意思是您想要连续执行操作或一次执行一个操作,那么我认为您的问题是您使用 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];
于 2012-04-24T00:51:24.277 回答