1)爲什麼要使用NSOperationQueue
?我們爲什麼要使用NSOperationQueue?
2)我們使用它有什麼好處?
3)我們能在同一時間實現通過NSOperationQueue
多個同步的網絡操作?
4)爲什麼我們使用NSOperationQueue
在UITableView
延遲加載?沒有NSOperationQueue
是不可能的?
1)爲什麼要使用NSOperationQueue
?我們爲什麼要使用NSOperationQueue?
2)我們使用它有什麼好處?
3)我們能在同一時間實現通過NSOperationQueue
多個同步的網絡操作?
4)爲什麼我們使用NSOperationQueue
在UITableView
延遲加載?沒有NSOperationQueue
是不可能的?
我們爲什麼要使用NSOperationQueue?
您應該使用NSOperationQueue
實現併發時工作單位是NSOperation
或它的一個子類。或者與其他需要NSOperationQueue
的API(例如, addObserverForName:object:queue:usingBlock:
方法NSNotificationCenter
我們使用它有什麼好處?
當異步執行的工作單元可以封裝在一個NSOperation
對象中時。也許你在問什麼是優於其他異步API的?這在很大程度上(但不完全)是您需要的抽象級別的問題,並且適合管理。作爲one author put it:「總是使用可用的最高級別抽象,並在測量顯示它們需要時下降到較低級別的抽象。」
我們能在同一時間實現通過NSOperationQueue多個同步的網絡操作?
當然。在網上看到很多關於這個主題的教程。像由Marcus Zarra估計的this one一樣。
爲什麼我們在Tableview的lazyloading中使用NSOperationQueue?
有關,就像使用任何併發的技術一樣的道理。加快工作速度和/或避免阻止用戶界面。在你引用的情況下,主要是關於不用長時間運行的任務阻塞UI。
如果沒有NSOperationQueue是不可能的?
當然這是可能的。 NSThread
,GCD等
非常感謝NSBum先生:) – Ganesh
閱讀[併發編程指南]中的操作隊列(http://developer.apple.com/library/ios/#documentation/General/Conceptual/ConcurrencyProgrammingGuide/Introduction/Introduction.html) – 0x8badf00d
這是對合作夥伴問題的掌握。 NSOperationQueue並不是執行大量這些事情的唯一方法,因此可能請查看併發指南,然後查看您是否不能在稍後再關注您的問題。 –
試着在未來以更好的方式提出問題。 –