我们为什么要使用NSOperationQueue?

时间:2012-10-06 09:07:12

标签: iphone objective-c ios ipad

1)我们为什么要使用NSOperationQueue

2)使用它时有什么好处?

3)我们可以同时通过NSOperationQueue实现多个同步网络操作吗?

4)为什么我们在NSOperationQueue的延迟加载中使用UITableView?如果没有NSOperationQueue,是不可能做到的?

1 个答案:

答案 0 :(得分:10)

  

我们为什么要使用NSOperationQueue?

当工作单元是NSOperationQueue或其子类之一时,您应该使用NSOperation来实现并发。或者使用需要NSOperationQueue的其他API,例如addObserverForName:object:queue:usingBlock:

上的NSNotificationCenter方法
  

使用它时有什么好处?

当异步执行的工作单元可以封装在NSOperation对象中时。也许您在问其他异步API的优势是什么?在很大程度上,但并非完全是,您需要的抽象级别问题,并且对管理感到满意。作为one author put it“始终使用可用的最高级别抽象,并在测量显示需要时将其下拉到较低级别的抽象。”

  

我们可以同时通过NSOperationQueue实现多个同步网络操作吗?

当然。查看大量有关此主题的在线教程。像可贵的马库斯·扎拉那样this one

  

为什么我们在Tableview的延迟加载中使用NSOperationQueue?

出于与使用任何并发技术相同的原因。使工作更快和/或避免阻止UI。在您引用的情况下,主要是关于不使用长时间运行的任务阻止UI。

  

如果没有NSOperationQueue,是不是可以做到?

当然有可能。 NSThread,GCD等