我有一个关于用数据填充核心数据的基本问题。我正在构建一个应用程序,它将在地图上显示ATM。我想使用预加载的数据库发送应用程序,但是为用户提供在启动应用程序时接收更新的选项。我正在考虑使用属性列表进行更新。基本上发送所有ATM的plist,解析plist并填充sqlite。我将在属性列表文件中有大约7000个条目,每个条目包含5-6个具有短字符串值的键。但根据Apple iOS开发者库:
您可以创建属性列表 - 或其他一些基于文件的列表 表示数据,并将其存储为应用程序资源。 当您想要使用它时,您必须打开文件并解析 用于创建托管对象的表示。你不应该使用它 iOS上的技术,只有在Mac OS X上绝对必要时才有效。 解析文件以创建商店会产生不必要的开销。它是 更好地离线创建Core Data存储并使用它 直接在您的申请中。
我是否仍然要发送一个属性列表,或者更愿意考虑更新应用程序数据库的替代解决方案?
P.S。我正在考虑使用Rails应用程序提供更新 - 基本上发送一个plist文件。
答案 0 :(得分:1)
基本上解决方案是编写一个解析我的源数据的小实用程序(对我来说这是一个以逗号分隔的文本文件,使用非常方便的'cCSVParse'库解析 - http://michael.stapelberg.de/cCSVParse)并将其插入Core数据管理对象,然后将其保存为sqlite持久性存储。然后sqlite商店可以随应用程序一起提供,并在用户购买更多数据时上传。
您可以将plist(或其他)的转换编写到应用程序本身的核心数据表示中,但如果数据刚刚以某些核心数据形式存在,那么为什么不让你的强大开发在您将数据发送给用户之前,请执行繁重的操作,而不是将数据传送到手机并使其完成工作?