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:を1で呼び出し、別の操作キューで上書きしてその操作キューへの参照を失うことだと思います。したがって、実行していることは正しいので、必要な操作数で操作をキューに追加する必要があります。おそらくこれを行うつもりはなかったでしょう。実際、コンパイラの警告が表示されると思います。このコードを試してください:

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 に答える