是否有等效于[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/

10-08 20:38