iPhone核心数据 - 导入其他内容

时间:2011-03-09 14:53:16

标签: iphone core-data import

我正在为我们的以核心数据为中心的应用程序查看其他内容的空中分布。我们需要找到一种很好的方法来封装新的附加内容包,以便导入到应用程序中。

我正在考虑以下事项:

选项1>使用insert语句创建.sql文件以直接更新基础SQLite层(我们将其作为创建内容的副产品)。

选项2>将新内容分发到完整的.sqlite文件中,使用该文件创建临时托管对象上下文并通过核心层将数据复制到主上下文中。从一开始,这似乎是一个昂贵的选择,而不是“尽可能精简”选项1。

任何人都可以建议任何其他选择或推荐最佳方法吗?

2 个答案:

答案 0 :(得分:1)

您可以将模块作为预处理的SQLite持久性存储库发送。然后可以在启动时将这些模块附加到应用程序的商店协调员。有点像加载插件。

如果内容确实必须存在于主商店中,您可以在后台将内容从一个商店导入另一个商店,或者其他内容。

也许这就是你选择#2 ...

的建议

另一种有效的方法是定义更通用的外部数据格式,例如JSON,XML,CSV,甚至是vanilla SQLite,以格式发送数据模块,然后从那里导入到应用程序的持久存储中。

您的选项#1存在风险,因为它取决于了解CD SQLite商店的内部架构,Apple保留在不告知您的情况下自行更改的权利。我不会发货这个选项。

我会选择导入JSON或发送预先烘焙的SQLite持久存储。

答案 1 :(得分:1)

Option1非常危险,因为Core Data SQLite架构没有记录,并且可能会在没有警告的情况下进行更改(假设您可以首先对其进行准确的逆向工程。)

选项2是您的最佳选择。它可能看起来很昂贵,但要记住Core Data首先是对象图管理API,其次才是持久性API。对象图不仅包含数据,还包含关系和行为。将对象添加到对象图形的唯一可靠方法是在图形“活着”时这样做,即通过实例化活动对象并将它们插入到实时(活动)图形中。

作家/程序员Marcus Zarra多次撰写有关此问题的文章,并解释了如何使用配置甚至“插件”数据模型和商店从Core Data导入和导出图表。

相关问题