我已经完成了清理我们刚刚转换为Swift 3项目的现有Swift代码的任务。但是,我一直看到这看起来对我很怀疑。
OperationQueue().addOperation(someOperation)
以下是我所关注的问题......
无论如何,我想知道我是否遗漏了某些东西,或者我不知道某个功能' NSOperationQueue和NSOperations让这段代码变得有意义。谁能说清楚这一点,还是你认为这是不好的做法?
答案 0 :(得分:0)
我也见过这种模式。我认为它像NSURLConnection一样:NSOperationQueue"知道"它有一个待处理的操作,并且不允许它自己立即失效。还要记住,NSOperationQueue并不是真正的东西&#34 ;;它是底层调度队列的一种前沿。
在没有合理位置存储对队列的引用的情况下使用此模式是有道理的。并且你可以使用它来产生强大的效果,就像在操作具有依赖关系的this example中一样,因此直到所有依赖关系才会执行。
然而,就个人而言,如果我没有利用那种NSOperation功能,我更倾向于直接使用GCD。
(至于你的中间点,在主线程上执行是没有意义的,因为如果操作很长会怎么样?你会阻塞主线程。但是,请注意,如果所有你&# 39;重新试着说"在其他所有事情之后做这件事",Swift给你 let button = (sender as AnyObject)
button.setTitle("Your text", for: .normal)
。)