【发布时间】:2023-03-07 12:07:01
【问题描述】:
这是场景:
我有一个托管对象:
Category
带属性:
categoryId String
categoryName String
subCategory SubCategory
SubCategory managedObject 具有以下属性:
categoryId String
categoryName String
categoryInverse Category
contractInverse Contract
Contract managedObject 具有以下属性:
contractId String
contractName String
subCategoryInverse SubCategory
我从 Web 服务获取 JSON 格式的类别和子类别数据,然后通过反向关系创建与类别和子类别相关联的合同。
问题是,当我在应用程序启动时从服务器检索 Categories 和 SubCategories 的新列表时,我删除了以前的 Categories 和 SubCategories 并用新数据填充它们。这反过来又打破了关系,新的Contract 对象具有子类别对象的nil,这将是我到Category 对象(contract.subCategoryInverse.categoryInverse) 的链接
如何在不丢失现有关系的情况下更新Category/SubCategory 数据?
【问题讨论】:
-
显而易见的是不要删除现有的对象,而是在适当的位置更新它们。为什么要在应用启动时删除所有内容?
-
有没有一种简单的方法来更新记录而不是全部删除并添加新对象?特别是当服务器不支持任何同步策略时。
-
获取现有记录,更改其值并保存更改。
标签: ios swift core-data entity-relationship nsmanagedobject