gpt4 book ai didi

ios - 将 NSOperation 的结果传递给另一个 NSOperation

转载 作者:IT王子 更新时间:2023-10-29 05:06:44 27 4
gpt4 key购买 nike

我有两个 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"
}

然而,这不起作用,因为我试图在调用 super.init 之前在我的下载完成 block 中使用 self

我的问题是,当尝试将一个操作的结果传递给链中的下一个操作时,最好的方法是什么?

最佳答案

NSOperation 的每个实例都包含依赖项数组。操作完成后不会从此数组中删除。您可以使用这些对象来访问数据:

class DownloadActivitiesOperation: NSOperation {
var data: NSData?
...
// set self.data when it has downloaded
}

class ParseActivitiesOperation: NSOperation {
func main() {
if let downloadOp = self.dependencies.last as? DownloadActivitiesOperation {
let dataToParse = downloadOp.data
...
}
}
}

等等。

关于ios - 将 NSOperation 的结果传递给另一个 NSOperation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32783429/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com