是否有等效于[NSOperationQueue currentQueue]
或[NSThread currentThread]
的NSOperation
?
我有一个相当复杂的域模型,其中繁重的处理发生在调用堆栈的深处。为了及时取消操作,我需要将NSOperation
作为参数传递给每个方法,直到到达要中断更长的运行循环的地步为止。使用线程,我可以使用[[NSThread currentThread] isCancelled]
,所以如果有等效的NSOperation,这似乎很方便,但是不幸的是,只有看似无用的[NSOperationQueue currentQueue]
。
最佳答案
快速扩展,返回正在运行的操作
extension NSOperationQueue {
public var runningOperations: [NSOperation] {
return operations.filter {$0.executing && !$0.finished && !$0.cancelled}
}
}
然后,您可以拿起第一个
if let operation = aQueue.runningOperations.first {}
关于objective-c - 如何掌握当前正在执行的NSOperation?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7336322/