Как добавить несколько операций в очередь NSOperation? - PullRequest
0 голосов
/ 06 января 2012

Я хочу распараллелить определенный код, подобный следующему примеру.Я пытаюсь добавить 10 последовательных итераций цикла к операции блока, проблема, с которой я сталкиваюсь, заключается в выполнении только 1-го блока.

 NSMutableArray *arrayOfOps=[[NSMutableArray alloc] init];</p>

<code>for (int i=0; i<totalCount()+10; i=i+10) {

    NSBlockOperation *op=[NSBlockOperation blockOperationWithBlock:^{

        for (int hh=i; (hh<=10)&(hh<totalCount); hh++) {


         //some code

        }


    }];

    [arrayOfOps addObject:op];


}


[OperationQueue addOperations:arrayOfOps waitUntilFinished:YES];

[arrayOfOps removeAllObjects];
[arrayOfOps release];
</code>

1 Ответ

0 голосов
/ 06 января 2012

Вы удаляете операции из массива с помощью «removeAllObjects» после отправки их в очередь операций.Возможно, очередь операций просто сохраняет массив, а не копирует его, и поэтому удаление операций влияет на поведение очереди.

Просто удалите эту строку, и все будет в порядке.

...