2012-05-11 59 views
6

使用NSURLConnection發出的HTTP請求是事件驅動的。當你需要一個接一個地發出三個請求,每個請求使用前一個請求返回的信息時,這會讓事情變得有點奇怪。使用NSURLConnection發送一系列HTTP請求的最佳方式

我已經習慣了這樣做是這樣的:

response1 = request1(); 
response2 = request2(response1); 
response3 = request3(response2); 

但我能找到如何與NSURLConnection做到這一點的唯一方法是讓connectionDidFinishLoading:使下一個請求。但是,當順序請求的數量增加時,這可能會變得混亂。

用cocoa處理順序HTTP請求的習慣用法是什麼?

回答

7

您可以將請求包裝在NSOperation中,然後定義操作依賴關係,以便每個請求在執行之前必須等待其依賴請求。

Apple Docs

依賴關係是在一個特定的順序來執行操作的便捷方式。您可以使用addDependency:和removeDependency:方法爲操作添加和刪除依賴項。默認情況下,具有依賴關係的操作對象在其所有依賴操作對象完成執行之前不會被視爲準備就緒。但是,一旦最後的依賴操作完成,操作對象就準備就緒並能夠執行。

0

我會建議你使用稱爲的第三方庫MKNetworkKit。它可以爲您處理艱苦的工作,因此您可以專注於應用程序的關鍵方面。你可以找到它here