Core data 如何更新核心数据中的托管对象数组属性?

Core data 如何更新核心数据中的托管对象数组属性?,core-data,Core Data,我有两个核心数据对象,配方和成分: class ManagedRecipe: NSManagedObject { public var id: UUID public var name: String public var ingredients: NSOrderedSet } class ManagedIngredient: NSManagedObject { public var id: UUID public var name

我有两个核心数据对象,配方和成分:

class ManagedRecipe: NSManagedObject {
    public var id: UUID        
    public var name: String
    public var ingredients: NSOrderedSet
}

class ManagedIngredient: NSManagedObject {
    public var id: UUID   
    public var name: String
}
如何在
ManagedRecipe
上更新
成分
?比如说

  • 用户可以更新特定成分
  • 用户可以删除特定成分
  • 用户可以将配料插入配料集中
  • 用户可以在已排序的集合中重新排序成分
更新核心数据中的数组属性的最佳方法是什么


假设每个配方不会有大量的配料,我是否应该用新的模型重新创建配料集,覆盖属性并保存?当配方对象中不再使用旧的配料对象时,是否会删除具有Nullify delete规则的上下文中的旧配料对象?

不要使事情过于复杂,如果要删除配料,请删除该特定对象;如果要添加配料,请创建新对象,并将其添加到
配料
,依此类推。没有理由仅仅因为涉及核心数据就让它变得更复杂。