以编程方式将列和表添加到CoreData

时间:2013-06-20 08:55:21

标签: ios sqlite core-data import

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

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

3 个答案:

答案 0 :(得分:0)

可以以编程方式创建Core Data模型。创建一个NSManagedObjectModel,为模型创建一些NSEntityDescription个实例,等等。关于核心数据模型的所有内容都可以在代码中进行配置,并且所有内容都已完整记录。

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

由于您已经拥有此SQLite数据库,因此最好将其保留在SQLite中,而不是根本不使用Core Data。 SQLite有几个很好的Objective-C包装器 - 查看PLDatabaseFMDB

答案 1 :(得分:0)

您应该使用sqlite来实现此目的,因为核心数据仍然无法实现。核心数据使用NSManagedObjectModel来创建在编译期间构建的实体模型。

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

答案 2 :(得分:0)

我担心CoreData目前无法实现这一目标。

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

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