我正在尝试使用带有完成处理程序的函数,如下所示:
myFunc(completion: {(var1, var2) -> Void in
// do something interesting with variables
})
我的问题是我需要依赖于其他NSOperation并具有NSOperations的依赖关系,因此我需要将myFunc()包装在NSOperation中。我将如何去做呢?
我已经开始研究NSOperation的子类并实现异步“ finished”标志,但是似乎应该有一种更简单,更轻便的方法来实现此操作而无需子类,可以使用NSBlockOperation或NSInvocationOperation。
我找到了AsyncOpKit的解决方案。内部异步调用完成后,它允许您将操作标记为“完成”。这是上面定义的函数的示例代码
class MyFuncOperation: AsyncOperation {
override main() {
myFunc(completion: {(var1, var2) -> Void in
// do something interesting with variables
finish()
})
}
}
然后就像使用MyFuncOperation
任何子NSOperation
类一样使用。
let operation = MyFuncOperation()
NSOperationQueue.currentQueue()!.addOperation(operation)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句