与大中央调度(GCD)相比,NSOperations的优势是什么?



我们知道用GCD代替NSOperation有很多好处,比如:1. 简洁,代码少2. 更高的性能,因为它是低级API

所以,GCD出来后,我再也没有在我的日常工作中使用NSOperation。

然而,是否存在NSOperation比GCD更适合使用的情况/例子?

谢谢

'NSOperation'让你可以使用setMaxConcurrentOperationCount:方法指定最大并发请求数,这通常是非常好的事情。

另外,NSOperation允许您使用addDependency:方法指定一些操作之间非常复杂的依赖关系。可以看出,某些操作的某些执行应该在其他操作完成后才开始。当然,你可以使用GCD来达到同样的效果,但这很快就会变得相当矫枉过正,因为有许多依赖关系嵌套的块将不是最干净的解决方案。

关于GDC和NSOperationsQueue的描述,有一篇文章。我发现它真的很有帮助。

//编辑此外,似乎NSOperation是更面向对象的方法,它使您有可能指定一些请求的逻辑完全隔离到NSOperation的子类中。

相关内容

最新更新