我正在尝试使用带有完成处理程序的函数,如下所示:
myFunc(completion: {(var1, var2) -> Void in
// do something interesting with variables
})
我的问题是我需要依赖于其他NSOperations并且具有NSOperations的依赖关系,所以我需要将myFunc()包装在NSOperation中。我该怎么做呢?
我已经开始研究子类化NSOperation并实现异步'finished'标志,但是看起来应该有一个更容易,更轻量级的方法来做这个没有子类,可能使用NSBlockOperation或NSInvocationOperation。
答案 0 :(得分:0)
我找到了AsyncOpKit的解决方案。它允许您在内部异步调用完成后标记操作“已完成”。以下是具有上面定义的函数的示例代码
function convert($string) {
$persianDigits= array('۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹');
$arabicDigits= array('٩', '٨', '٧', '٦', '٥', '٤', '٣', '٢', '١', '٠');
$allPersianDigits=array_merge($persinaDigits, $arabicDigits);
$replaces = range(0,9);
return str_replace($allPersianDigits, $replaces , $string);
}
然后就像使用任何class MyFuncOperation: AsyncOperation {
override main() {
myFunc(completion: {(var1, var2) -> Void in
// do something interesting with variables
finish()
})
}
}
子类一样使用MyFuncOperation
。
NSOperation