与Grand Central Dispatch(GCD)相比,NSOperations的优势是什么?

时间:2014-03-22 21:44:51

标签: grand-central-dispatch nsoperation nsoperationqueue

在用GCD替换NSOperation时我们知道太多的优点,例如: 1.优雅,少代码 2.性能更高,因为它是低级API

因此,在GCD问世后,我在日常工作中再也没有使用过NSOperation。

但是,是否有任何情况/例子可以使用NSOperation而不是GCD?

由于

1 个答案:

答案 0 :(得分:1)

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

同样NSOperation允许您使用addDependency:方法指定某些操作之间非常复杂的依赖关系。您可以知道某些操作的某些执行只有在其他操作完成时才会启动。当然,您可以使用GCD实现相同的效果,但这很快就会变得非常过分,因为许多依赖项嵌套块将不是最干净的解决方案。

对于GDC和NSOperationsQueue的说明,有this条。我发现它真的很有用。

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