从网络服务器获取数据的建议?

问题描述:

我有一个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

我的建议是保持简单。在服务器端,使用RESTful principles使接口尽可能简单。

然后,您需要在iPhone应用程序中执行的操作是使用NSURLConnection来获取URL。 NSURLConnection是从远程位置下载文件的非常好的异步方式。

之后,解析XML或JSON并创建适当的Core Data对象是一件简单的事情。我通常喜欢在单独的线程中在单独的托管对象上下文中执行像这样的导入操作。保存托管对象上下文时,请使用NSManagedObjectContextDidSaveNotification将变更与主托管对象上下文进行合并。

+0

谢谢。在服务器端,我只需输出一个普通的旧XML文件和所有“有趣的位置”项目。直截了当的东西。 – openfrog 2010-01-19 19:47:36

你有什么样的服务器?如果服务器是基于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