0

我有一个包含 100 多个表的 sqlite 数据库。每个表由 50 多列组成。我想将数据库导入CoreData。

我可以在 CoreData 中创建表并添加与 sqlite 数据库相对应的列,还是必须在 CoreData 中一一手动创建表?

4

3 回答 3

0

可以通过编程方式创建 Core Data 模型。创建一个NSManagedObjectModel,为模型创建一些NSEntityDescription实例,等等。关于 Core Data 模型的所有内容都可以在代码中进行配置,并且都有很好的文档记录。

但是,只有在尚未加载使用该模型的持久性存储时才能执行此操作。一旦你持久存储,NSManagedObjectModel实例必须被视为只读。加载 store 后修改它会抛出异常。如果你这样做一次是为了创建你的初始模型,那很好,但如果你想一直这样做,那么你可能会遇到问题。

既然你已经有了这个 SQLite 数据库,你最好把它保存在 SQLite 中而不使用 Core Data。SQLite 有几个很好的 Objective-C 包装器——查看PLDatabaseFMDB

于 2013-06-20T16:34:44.037 回答
0

恐怕CoreData目前无法做到这一点。

要使用核心数据,您必须定义持久存储和托管对象模型。这些是表示在“.xcdatamodeld”中创建的实体的类。这些不能在运行时生成。

所以更好的是使用 Sqlite 或其他数据库库在运行时动态创建表。

于 2017-09-18T15:09:02.147 回答
0

您应该为此目的使用 sqlite,因为这对于核心数据仍然是不可能的。核心数据使用 NSManagedObjectModel 创建在编译期间构建的实体模型。

结论 - 为此目的使用 Sqlite 数据库。

于 2017-09-18T06:25:21.747 回答