是否可以在CoreData中使用多个SQLite文件?

时间:2010-09-26 13:36:41

标签: iphone objective-c xcode sqlite core-data

你好stackoverflow家庭成员吗?

我知道在iPhone CoreData系统中创建一个额外的sqlite表是没有效率的。 (X)

目前,我的应用程序有一个sqlite表,但有预设数据给用户,不需要浪费解析时间。但是如果我在SQLite表的当前结构中添加新实体,它会清除整个预设数据。我没有尝试使用移民方法,但我认为这不会只是在表上添加新实体。我在想它也会消除以前的预设数据。

SQLite文件的当前架构。

  • entity:A
  • 属性:包含数据

我想保持A属性仍然包含数据,但也添加新实体:B。

实体:A

属性:以前包含的数据

(PLUS +)

实体:B

属性:新数据

我是否需要创建额外的持久性设置以单独存储实体B(创建另一个SQLite文件并用作存储)或者是否有可能在当前SQLite中添加实体B而实体A中没有更改?

谢谢。

1 个答案:

答案 0 :(得分:1)

直接回答您的问题:是的,您可以在Core Data中引用多个SQLite文件。您将希望为每个商店使用唯一的持久性商店。

我不明白你的问题的其余部分,因此创建多个持久存储可能不是你想要的。

  

我知道在iPhone CoreData系统中创建一个额外的sqlite表是有效的。

这是不真实的。创建多个实体(也就是表,但是抽象出来)可以带来更高效的查询。

  

目前,我的应用程序有一个sqlite表,但不需要更改预设的sqlite表,但想添加一些其他属性。

只需将属性添加到您的实体即可。如果您的应用已经发布,或者您希望维护现有数据,则必须设置migration and/or turn on lightweight migration

  

因此使用新属性进行提交并更新coredata无效。因为它会闪现当前数据集,需要花费几个小时才能手动输入。

这对我没有任何意义。你能说清楚吗?