У меня есть операция загрузки данных, которая должна быть отключена от основного потока, чтобы избежать возможных проблем с блокировкой. Для этого я использую NSOperationQueue и NSOperations.Как заблокировать NSOperation до завершения NSOperationQueue?
Однако возникла одна из проблем, связанных с созданием дополнительных операций на основе поступающей информации. Попытка решить эту проблему также решила некоторые второстепенные проблемы, которые у меня были в другом месте, поскольку решение, с которым я столкнулся, состояло в том, чтобы предоставить NSOperation собственную очередь для подзадач.
Проблема заключается в том, что, как только «основные» выходы, NSOperation будет помечен как «законченный», независимо от того, завершена ли очередь подсетей; как мне переопределить это поведение?
Похоже, вы ищете [параллельное NSOperation] (http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/NSOperation_class/Reference/Reference.html)? –
@CarlVeazey Не ... точно, но похоже, что шаги, используемые для создания параллельного NSOperation, делают то же самое, что я на самом деле ищу. Вы должны переопределить, как обрабатываются методы запуска isFinished/isExecuting, и я думаю, что это именно то, что мне нужно сделать здесь. Мне нужно переопределить старт, чтобы он не устанавливал isFinished мгновенные главные концы. Что означает обращение с материалом KVO, когда я изменяю эти свойства, о, радость. – RonLugge
@CodaFi Я не уверен, ясно ли я, но ответ, который вы предложили, не имеет смысла. Зависимости предотвращают выполнение операции, они не препятствуют ее завершению после ее начала. По крайней мере, это то, о чем говорят ссылки. – RonLugge