2010-01-27 37 views
0

因此,假設我有一個具有init方法的類,它執行類似......以xml格式從網上抓取一些數據並解析它以初始化其某些屬性。我擔心的是,我應該如何處理網絡故障或者我的對象收到的xml數據不好的情況?在iphone應用程序中初始化模型時,如何才能最好地處理問題?

通常在C我會使用返回值來指示錯誤和什麼樣,然後將傳播回來,直到我可以報告給用戶。我並不認爲這種情況會起作用。

回答

1

使用異步NE twork請求。

  1. 創建UI和與 任一虛設更換爲 實際值(如圖片)或無 數據(例如空表)顯示它。

  2. 然後創建併發送請求 數據和註冊處理程序,獲取 與數據調用。

  3. 當您收到數據時,您的處理程序 會與它們一起被調用。

  4. 您解析數據並更新 用戶界面。如果數據無效 您現在可以更新UI以通知 用戶。

  5. 您可以使用超時取消網絡問題 的情況下 請求,而不是與特定的時間內 數據返回的功能。

有去年Stanford's CS193p類爲例(iPhone編程,但同樣適用於桌面應用程序),以顯示空的用戶界面和更新它,當數據回來。你可能會在網上找到它的參考,否則今年會有新的例子。

0

對於網絡下來,你有幾種選擇

  • 提醒用戶無法檢索所需要的數據
  • 顯示陳舊的(最後裝載,也許不是過時?)數據

壞數據:

  • 提醒用戶
  • 再試一次
  • 顯示舊數據
  • 嘗試修復數據(缺少結束標記?等)
  • 顯示的數據(也許你可以提取的東西是可用的)的一個子集

至於錯誤代碼,你可以這樣做:?

  • 返回碼即bad_data -1 ,no_network -2等
  • 您可以拋出異常,抓住他們,並把它們映射到用戶友好的顯示信息
相關問題