使用默认数据初始化核心数据
我有一个关于使用数据填充核心数据的基本问题。 我正在构build一个应用程序,它将在地图上显示ATM。 我想运送应用程序预载数据库,但给用户select接收更新,当他们启动应用程序。 我正在考虑使用属性列表进行更新。 基本上所有的自动取款机的plist,parsingplist和填充sqlite。 我将在属性列表文件中有大约7000个条目,每个条目包含具有短string值的5-6个键。 但根据苹果iOS开发者库:
您可以创build数据的属性列表(或其他基于文件的表示forms),并将其存储为应用程序资源。 当你想使用它的时候,你必须打开文件并parsing表示来创buildpipe理对象。 你不应该在iOS上使用这种技术,并且只能在Mac OS X上完全需要。parsing一个文件来创build一个存储会招致不必要的开销。 自己离线创build一个Core Data存储器并直接在应用程序中使用它会好得多。
我是否还应该发送一个属性列表,或者想一个替代解决scheme来更新应用程序的数据库?
PS我正在考虑使用Rails应用程序提供更新 – 基本上发送一个plist文件。
几个月前,我几乎有同样的问题,找了一个很简单的答案,没有find答案,并最终以自己的解决scheme来解决问题,这个解决scheme花了比我想象中多的时间,但至less在学习理解Core Data方面非常有帮助。
基本上解决的办法是写一个小工具,parsing我的源数据(对于我来说是一个逗号分隔的文本文件,使用相当方便的'cCSVParse'库parsing – http://michael.stapelberg.de/cCSVParse )并插入它到核心数据pipe理对象,然后将其保存为一个SQLite持久存储。 然后,sqlite商店可以随应用程序一起发货,并在用户购买更多数据时由用户上传。
你可以写一个从plist(或其他)到应用程序本身的核心数据表示forms的转换,但是如果数据刚刚在某些核心数据表单中显示出来,为什么不让你的开发工具箱在您将数据发送给用户之前繁重的工作,而不是将数据发送到电话,并使其工作?