1

我有一個Web服務器,其中包含「有趣的位置」列表。這些在Web服務器上是「硬編碼的」,並由服務器端的管理員進行維護。用戶無法添加或刪除任何內容。從網絡服務器獲取數據的建議?

從我的應用程序中,我想製作一個按鈕「獲取位置」,然後應用程序應該聯繫網絡服務器並要求提供「有趣的位置」列表。

我正在使用核心數據,並在我的模型中有一個InterestingLocation實體。目標是從Web服務器獲取數據,並使用Core Data將其保存在設備上,以便即使沒有互聯網連接也可訪問。

我的想法是在服務器端使用XML並在XML文件中輸出InterestingLocation「objects」。它們大約只有100個,所以不是很大。

在客戶端(設備),可能是XML-RPC?

會高興一些建議和更多信息哪裏/如何開始:)

+4

有很多你的問題的答案http://stackoverflow.com/search?q=data+web+service+iphone基本上它歸結爲XML或JSON。 – 2010-01-19 19:15:40

回答

4

我的建議是保持簡單。在服務器端,使用RESTful principles使接口儘可能簡單。

然後,您需要在iPhone應用程序中執行的操作是使用NSURLConnection來獲取URL。 NSURLConnection是從遠程位置下載文件的非常好的異步方式。

之後,解析XML或JSON並創建適當的Core Data對象是一件簡單的事情。我通常喜歡在單獨的線程中在單獨的託管對象上下文中執行像這樣的導入操作。保存託管對象上下文時,請使用NSManagedObjectContextDidSaveNotification將變更與主託管對象上下文進行合併。

+0

謝謝。在服務器端,我只需輸出一個普通的舊XML文件和所有「有趣的位置」項目。直截了當的東西。 – openfrog 2010-01-19 19:47:36

1

你有什麼樣的服務器?如果服務器是基於Java的,我建議您查看Fredrik Olsson的HessianKit。編碼/解碼爲普通的Objective-C類型並放入NSArrays和NSDictionaries將使體驗更順暢。

+0

PHP。但是我看到Hessian也可以使用PHP,對吧?所以你建議Hessian會更快或更容易使用? – openfrog 2010-01-19 19:49:05

+0

我只用PHP測試過它,我用這個版本http://sourceforge.net/projects/hessianphp/我的測試發佈於2009年9月9日這裏http://groups.google.com/group/cocoaheads-oresund與Hessian最好的事情是,它將ObjC類型自動轉換爲PHP(或Java)或從其自動轉換... – epatel 2010-01-19 21:24:19

+0

我也做了一個簡單的XML解析器,也可以在iPhone上正常工作,看看這裏http://www.memention。 COM /博客/ 2009/10/31 /的-XML-Runner.html – epatel 2010-01-19 21:26:10