Итак, у меня есть группа ASINetworkQueues, которые в настоящее время работают вместе, что приводит к состоянию гонки, когда дело доходит до сохранения БД.Я пытаюсь создать NSOperationQueue, который будет ставить в очередь каждую из этих «под очередей».В настоящее время я создал NSOperation с основным методом, который запускает «подпоследовательность», чтобы начать загрузку.
Моя проблема заключается в том, что каждый раз, когда я добавляю подпоследовательность в основную очередь, используя «addOperation», она запускаетсяэтот "основной" метод сразу, так что мои подпоследовательности запускаются одновременно.У меня сложилось впечатление, что основной метод был запущен по одному.т. е. только для операции в верхней части очереди.
Возможно, я что-то здесь упускаю, но я не могу понять, как остановить другие операции, пока не завершится первая.Кроме того, я даже не могу заставить свою программу оказаться в ситуации, которая приводит к isReady = 0 для NSOperation ... которая всегда возвращает да.
вот некоторый код:
ПРИМЕЧАНИЕ:Я установил для очереди NSOperation maxConcurrentOperations значение 1.
Основной метод NSOperation:
-(void)main {
[subQueue download];
}
Настройка очереди:
ChapterDownloadOperation *cdo = [[ChapterDownloadOperation alloc] init];
cdo.chapter = ch;
[chapterDownloadQueue addOperation:cdo];
[cdo release];
Если я добавлю несколько операций, основнойметод запускается в том случае, если он добавлен в очередь.Есть ли другая функция, которую я должен переопределить и использовать, когда эта операция готова качаться.У меня такое ощущение, что основной метод - это настройка операции.
Любые идеи очень ценятся.
Большое спасибо.