核心数据是否允许我以编程方式创建新表?或者如果我需要,我需要直接使用SQLite。
感谢
答案 0 :(得分:4)
从CoreData的角度来看,您并没有真正创建新表,因为数据库表只是与核心数据模型关联的一种可能的持久性存储类型。
但是,您可以使用NSEntityDescription类以编程方式创建新的核心数据实体。在NSEntityDescription类文档中,您将找到:
Entity descriptions are editable until they are used by an object graph manager. This
allows you to create or modify them dynamically. However, once a description is used
(when the managed object model to which it belongs is associated with a persistent store
coordinator), it must not (indeed cannot) be changed. This is enforced at runtime: any
attempt to mutate a model or any of its sub-objects after the model is associated with a
persistent store coordinator causes an exception to be thrown. If you need to modify a
model that is in use, create a copy, modify the copy, and then discard the objects with
the old model.
我从来没有尝试过在运行时修改一个,所以当你有一个现有的SQLite持久性存储时,我不确定它的工作原理是多少,如果有的话。但是,使用NSEntityDescription可能值得一试,看看它是否能让你接近你想要做的事情。
答案 1 :(得分:0)
您通常使用Xcode的数据模型设计工具以图形方式创建托管对象模型。 (如果您希望可以在运行时以编程方式构建模型
答案 2 :(得分:0)
但是你可以:
您无法动态更改模型,因为它们在被拉入运行时环境时几乎已得到修复。