У меня есть два NSOperation
, которые отвечают за скачивание и анализ. После успешной операции загрузки и получения некоторого NSData
я хочу, чтобы эти данные были использованы в качестве данных, которые будут использоваться операцией синтаксического анализа:
init(context: NSManagedObjectContext, completionHandler: Void -> Void) {
downloadOperation = DownloadActivitiesOperation() { data in
self.parseOperation.data = data
}
parseOperation = ParseActivitiesOperation(context: context)
let finishOperation = NSBlockOperation(block: completionHandler)
parseOperation.addDependency(downloadOperation)
finishOperation.addDependency(parseOperation)
super.init(operations: [downloadOperation, parseOperation, finishOperation])
name = "Get Activities"
}
Однако это не работает, поскольку я пытаюсь использовать self
внутри блока завершения загрузки перед вызовом super.init
.
Мой вопрос: какой лучший подход при попытке передать результат одной операции следующему в цепочке?