【发布时间】:2014-04-30 07:26:02
【问题描述】:
我们知道用 GCD 代替 NSOperation 有太多的好处,比如: 1.优雅少代码 2. 低级API,性能更高
所以,在 GCD 出来后,我在日常工作中再也没有使用过 NSOperation。
但是,是否有任何情况/示例更倾向于使用 NSOperation 而不是 GCD?
谢谢
【问题讨论】:
标签: grand-central-dispatch nsoperation nsoperationqueue
我们知道用 GCD 代替 NSOperation 有太多的好处,比如: 1.优雅少代码 2. 低级API,性能更高
所以,在 GCD 出来后,我在日常工作中再也没有使用过 NSOperation。
但是,是否有任何情况/示例更倾向于使用 NSOperation 而不是 GCD?
谢谢
【问题讨论】:
标签: grand-central-dispatch nsoperation nsoperationqueue
'NSOperation' 让您可以使用 setMaxConcurrentOperationCount: 方法指定最大并发请求数,这通常是非常好的事情。
另外,NSOperation 允许您使用addDependency: 方法指定一些操作之间非常复杂的依赖关系。您可以说某些操作的某些执行应该仅在其他一些操作完成时才开始。当然,您可以使用 GCD 实现相同的效果,但这很快就会变得相当过大,因为许多依赖项嵌套块将不是最干净的解决方案。
当谈到 GDC 和NSOperationsQueue 的描述时,有this 文章。我发现它真的很有帮助。
//编辑
此外,NSOperation 似乎是更面向对象的方法,这使您可以指定某些请求的逻辑以完全隔离到 NSOperation 的子类中。
【讨论】: