我有一个包含100多个表的sqlite数据库。每个表包含50多列。我想将数据库导入CoreData。
我可以在CoreData中创建表并添加与sqlite数据库对应的列,还是必须在CoreData中逐个手动创建表?
答案 0 :(得分:0)
可以以编程方式创建Core Data模型。创建一个NSManagedObjectModel
,为模型创建一些NSEntityDescription
个实例,等等。关于核心数据模型的所有内容都可以在代码中进行配置,并且所有内容都已完整记录。
但是,如果尚未加载使用该模型的持久性存储,则只能执行此操作。持久存储后,NSManagedObjectModel
实例必须被视为只读。加载商店后修改它将引发异常。如果你这样做一次来创建你的初始模型,那很好,但如果你想一直这样做,那么你可能会遇到问题。
由于您已经拥有此SQLite数据库,因此最好将其保留在SQLite中,而不是根本不使用Core Data。 SQLite有几个很好的Objective-C包装器 - 查看PLDatabase和FMDB。
答案 1 :(得分:0)
您应该使用sqlite来实现此目的,因为核心数据仍然无法实现。核心数据使用NSManagedObjectModel来创建在编译期间构建的实体模型。
结论 - 为此目的使用Sqlite数据库。
答案 2 :(得分:0)
我担心CoreData目前无法实现这一目标。
要使用核心数据,您必须定义持久性存储和托管对象模型。这些是表示在“.xcdatamodeld”中创建的实体的类。这些不能在运行时生成。
最好是使用Sqlite或其他数据库库在运行时动态创建表。