我正在编写一个iPhone应用程序,使用MapKit在Google地图上显示项目的位置。我有一组要在地图上显示的项目。这些项目可能会随着时间的推移而发生变化,因此我希望在Web服务器上集中管理它们,并允许客户端在新版本可用时获取它们。我有几种方法可以做到这一点,我想对我目前的想法提出一些意见或提出更好的替代方案。
首先,我想使用Core Data将项目存储在iPhone上,因为我将此作为Core Data的学习机会,与其他任何东西一样。不过,我想听听有关服务器端存储和数据格式化的想法,以便iOS转换为核心数据对象。
所以,我想要在手机上使用Core Data的解决方案,我理解NSXMLParser所以我知道如何才能真正实现该解决方案。我想知道是否有其他方法可以提供数据,从而减少将服务器端数据转换为Core Data对象所需的操作量。
答案 0 :(得分:1)
首先是服务器端:我毫不怀疑您必须将数据存储在数据库中,因为它非常灵活(您可以向客户端提供其他请求,您可以在数据库中添加/更新/更改表,同时外部保持不变)。
至于您从服务器发送的数据格式,我认为这是您自己的偏好和问题域的问题。我更喜欢XML,但这就是我。你可以阅读这篇非常好的文章JSON vs XML 如果您选择JSON,那么我建议您使用这个非常好的实用程序框架来解析它:json-framework
但是您的客户不应该关心数据的格式。您必须使用构造函数定义接口,如
-(id) initWithDictionary:(NSDictionary*) dict;
无论你在哪里获得该字典(在解析XML / JSON之后,或者从DB或其他方式解析)。