在用GCD替换NSOperation时我们知道太多的优点,例如: 1.优雅,少代码 2.性能更高,因为它是低级API
因此,在GCD问世后,我在日常工作中再也没有使用过NSOperation。
但是,是否有任何情况/例子可以使用NSOperation而不是GCD?
由于
答案 0 :(得分:1)
'的NSOperation'您可以使用setMaxConcurrentOperationCount:
方法指定最大数量的concurreny请求,这通常是非常好的事情。
同样NSOperation
允许您使用addDependency:
方法指定某些操作之间非常复杂的依赖关系。您可以知道某些操作的某些执行只有在其他操作完成时才会启动。当然,您可以使用GCD实现相同的效果,但这很快就会变得非常过分,因为许多依赖项嵌套块将不是最干净的解决方案。
对于GDC和NSOperationsQueue
的说明,有this条。我发现它真的很有用。
// EDIT
此外,似乎NSOperation
是更加面向对象的方法,它使您可以指定某些请求的逻辑完全隔离到NSOperation
的子类中。