使用默认数据初始化核心数据

时间:2011-11-25 12:49:19

标签: ruby-on-rails ios sqlite core-data plist

我有一个关于用数据填充核心数据的基本问题。我正在构建一个应用程序,它将在地图上显示ATM。我想使用预加载的数据库发送应用程序,但是为用户提供在启动应用程序时接收更新的选项。我正在考虑使用属性列表进行更新。基本上发送所有ATM的plist,解析plist并填充sqlite。我将在属性列表文件中有大约7000个条目,每个条目包含5-6个具有短字符串值的键。但根据Apple iOS开发者库:

  

您可以创建属性列表 - 或其他一些基于文件的列表   表示数据,并将其存储为应用程序资源。   当您想要使用它时,您必须打开文件并解析   用于创建托管对象的表示。你不应该使用它   iOS上的技术,只有在Mac OS X上绝对必要时才有效。   解析文件以创建商店会产生不必要的开销。它是   更好地离线创建Core Data存储并使用它   直接在您的申请中。

我是否仍然要发送一个属性列表,或者更愿意考虑更新应用程序数据库的替代解决方案?

P.S。我正在考虑使用Rails应用程序提供更新 - 基本上发送一个plist文件。

1 个答案:

答案 0 :(得分:1)

几个月前我几乎有同样的问题,做了很多寻找一个很好的简单答案,找不到它并最终选择了自己的解决方案,比我花了更多的时间本来希望,但至少在学习理解核心数据方面非常有帮助。

基本上解决方案是编写一个解析我的源数据的小实用程序(对我来说这是一个以逗号分隔的文本文件,使用非常方便的'cCSVParse'库解析 - http://michael.stapelberg.de/cCSVParse)并将其插入Core数据管理对象,然后将其保存为sqlite持久性存储。然后sqlite商店可以随应用程序一起提供,并在用户购买更多数据时上传。

您可以将plist(或其他)的转换编写到应用程序本身的核心数据表示中,但如果数据刚刚以某些核心数据形式存在,那么为什么不让你的强大开发在您将数据发送给用户之前,请执行繁重的操作,而不是将数据传送到手机并使其完成工作?