gpt4 book ai didi

ios - 在 NSOperation 中包装异步函数调用

转载 作者:搜寻专家 更新时间:2023-11-01 05:40:20 24 4
gpt4 key购买 nike

我正在尝试使用带有完成处理程序的函数,调用方式如下:

myFunc(completion: {(var1, var2) -> Void in
// do something interesting with variables
})

我的问题是我需要它依赖于其他 NSOperations 并且具有 NSOperations 的依赖项,所以我需要将 myFunc() 包装在 NSOperations 中。我该怎么做呢?

我已经开始研究 NSOperation 的子类化并实现异步“完成”标志,但似乎应该有一种更简单、更轻量级的方法可以在没有子类的情况下执行此操作,可能使用 NSBlockOperation 或 NSInvocationOperation。

最佳答案

我找到了一个使用 AsyncOpKit 的解决方案。它允许您在内部异步调用完成后将操作标记为“已完成”。这是上面定义的函数的示例代码

class MyFuncOperation: AsyncOperation {
override main() {
myFunc(completion: {(var1, var2) -> Void in
// do something interesting with variables
finish()
})
}
}

然后像使用任何 NSOperation 子类一样使用 MyFuncOperation

let operation = MyFuncOperation()
NSOperationQueue.currentQueue()!.addOperation(operation)

https://cocoapods.org/pods/AsyncOpKit

关于ios - 在 NSOperation 中包装异步函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31362776/

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