ios - 我可以通过编码在核心数据中创建和删除实体吗

标签 ios swift core-data swift3

我想通过编码(没有gui-Swift3)在核心数据中创建和删除实体,这可能吗?

最佳答案

您可以在运行时创建实体以及实例,尽管这很不常见并且有几个潜在问题需要注意。

首先,您可以创建 NSEntityDescription 的实例来创建新实体。使用 NSAttributeDescriptionNSRelationshipDescription 的实例来完成新实体。通过修改 NSManagedObjectModel 上的 entities 属性,将新实体添加到托管对象模型。

在尝试之前你需要知道的事情:

  1. 加载持久存储文件后无法修改模型。因此,您必须在尝试使用模型访问任何数据之前执行上述操作。在您加载数据之前,模型是读/写的,但之后只读。在加载数据后修改模型会导致您的应用崩溃。
  2. 每次将实体与持久存储文件一起使用时,您都必须创建相同实体——除非您执行模型迁移以反射(reflect)新的实体描述。
  3. 您不能使用NSPersistentContainer,因为它隐藏了太多细节。您必须使用较旧的(但仍受支持)方法,您可以编写自己的代码来加载模型,然后使用 addPersistentStore(ofType:configurationName:at:options:) 来加载持久存储文件。

关于ios - 我可以通过编码在核心数据中创建和删除实体吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44108166/

相关文章:

ios - ionic : Why if I have the title attribute nothing shows up on the app (? )

iphone - 将项目从 ARC 转换为 MRC

ios - 如何在 iOS 上启用文件和文件夹权限

javascript - 使用 Firebase Cloud Functions 批量写入

ios - 为什么 SpriteKit 中的 Sprite 不会从墙上反弹

ios - iOS 上的自签名证书

ios - 如何提取 DynamoDB 表中的第一行?

swift - 如何在 Core Data (Swift) 中保存和检索 .mp4

swift - Coredata关系,保存Dictionary

iphone - 如何从 NSFetchedResultsControllerDelegate 实现延迟/批量 TableView 更新?