2012-10-06 77 views
3

1)爲什麼要使用NSOperationQueue我們爲什麼要使用NSOperationQueue?

2)我們使用它有什麼好處?

3)我們能在同一時間實現通過NSOperationQueue多個同步的網絡操作?

4)爲什麼我們使用NSOperationQueueUITableView延遲加載?沒有NSOperationQueue是不可能的?

+3

閱讀[併發編程指南]中的操作隊列(http://developer.apple.com/library/ios/#documentation/General/Conceptual/ConcurrencyProgrammingGuide/Introduction/Introduction.html) – 0x8badf00d

+0

這是對合作夥伴問題的掌握。 NSOperationQueue並不是執行大量這些事情的唯一方法,因此可能請查看併發指南,然後查看您是否不能在稍後再關注您的問題。 –

+0

試着在未來以更好的方式提出問題。 –

回答

9

我們爲什麼要使用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等

+0

非常感謝NSBum先生:) – Ganesh