2010-09-07 61 views
0

我有一個iPhone應用程序,它正在使用Soap Web服務。當我發送一個URLrequest時,應用程序變慢。我的應用程序是一個TabBarApplication。從開始調用Web服務來解析接收到的數據,我無法選擇UITabbarcontroller中的Tabs。如何加速我的iPhone應用程序Tabbarcontroller即使在應用程序從Web服務接收到一些數據時也可以選擇? NSThread的使用是一個很好的解決方案嗎?消費Web服務時加速iPhone應用程序

回答

4

無論何時訪問網絡,都可以通過使用單獨的線程或使用異步的NSURLConnection實例異步執行。這樣,用戶界面仍然保持響應。

這不是免費的:所有的視圖都需要管理狀態,因爲它們一開始處於「數據加載」狀態(當它們提交請求時),然後當數據的最後一段數據已經到達,他們進入「數據加載」狀態,需要刷新。如果reqeust失敗,他們進入「加載失敗」狀態並顯示「重試」按鈕(或類似的東西)。

我寫了一個應用程序,它從遠程Web服務獲取所有數據。它感覺非常快速且響應迅速,可能是由於以下事實:

  • 它以異步方式加載所有數據(使用NSURLConnection實例)。
  • 它使用JSON而不是SOAP,因爲它更加緊湊和更快速解析。
  • 它使用HTTP連接壓縮。
  • 它只在每個請求上加載儘可能少的數據。