我想通过编码(没有gui-Swift3)在核心数据中创建和删除实体,这可能吗?
最佳答案
您可以在运行时创建实体以及实例,尽管这很不常见并且有几个潜在问题需要注意。
首先,您可以创建 NSEntityDescription
的实例来创建新实体。使用 NSAttributeDescription
和 NSRelationshipDescription
的实例来完成新实体。通过修改 NSManagedObjectModel
上的 entities
属性,将新实体添加到托管对象模型。
在尝试之前你需要知道的事情:
- 加载持久存储文件后无法修改模型。因此,您必须在尝试使用模型访问任何数据之前执行上述操作。在您加载数据之前,模型是读/写的,但之后只读。在加载数据后修改模型会导致您的应用崩溃。
- 每次将实体与持久存储文件一起使用时,您都必须创建相同实体——除非您执行模型迁移以反射(reflect)新的实体描述。
- 您不能使用
NSPersistentContainer
,因为它隐藏了太多细节。您必须使用较旧的(但仍受支持)方法,您可以编写自己的代码来加载模型,然后使用addPersistentStore(ofType:configurationName:at:options:)
来加载持久存储文件。
关于ios - 我可以通过编码在核心数据中创建和删除实体吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44108166/