2011-06-28 55 views
4

Web服務將數據發送到iOS客戶端,客戶端使用UITableView顯示數據。你如何處理iOS中的網絡服務?那麼CoreData呢?

數據通常是內置板文本列表。它通過json格式從Web服務發送。 (有時是XML)

它不需要實時更新,但我不想因加載Web服務而阻塞UI。

有很多方法可以實現它,哪種方式適合您? 1.或2.?

  1. UITableViewController處理json對象。

    簡單的方法,但編碼起來可能很複雜。

  2. 使用CoreData作爲本地數據庫。

    本地存儲庫文章,當json數據來自web服務時,它更新本地CoreData存儲庫。 (異步Web服務負載)

    和UITableViewController <>處理本地CoreData存儲庫的更新,並用動畫更新UITableView。

我認爲第二種方式是更好的,而不spaghetii代碼來實現,但恐怕還有其他性能問題,或者是不是那麼傻的代碼?

朋友們,你們如何通過web服務實現數據列表?


更多評論:

我發現蘋果的SDK SeismicXML例如,方式1

實現良好的例子,但我認爲它可以很容易地通過使用CoreData作爲本地資源庫來實現。

  1. 獲取從web服務(異步)的數據,並把數據轉化爲CoreData

  2. 的UITableViewController更新的UITableView在NSFetchedResultsControllerDelegate方法。

您如何看待這一策略?

回答

4

結帳RestKit。他們有一個用於iPhone的討論板客戶端的例子,它通過json從討論板服務器獲取數據(在示例中也提供 - 在rails上構建),並將其存儲到iphone上的核心數據庫中。非常優雅的伊莫。如果使用JSON框架

JSON Framework

在您的視圖控制器,設置它從服務器下載數據

http://restkit.org/

+0

謝謝你介紹真棒框架!這是我真正需要的(不僅僅是我真正想象的)未來工作者,這裏是關於Restkit的教程。介紹:http://mobile.tutsplus.com/tutorials/iphone/restkit_ios-sdk/核心數據集成:http://mobile.tutsplus.com/tutorials/iphone/advanced-restkit-development_iphone-sdk/ – moon6pence

+0

歡迎您,很棒的教程鏈接 – ugiflezet

1

選項1是非常簡單的。數據完成下載後,使用JSON框架填充數據模型,然後調用表上的重新加載以顯示新數據。這樣,用戶在下載時就不會暫停。

+0

是的,我一直在使用JSON解析框架實現OPTION 1,但是我覺得我要用我的代碼去找地獄,並找到一些更好的策略或框架。不管怎樣,謝謝你。 – moon6pence