将项目数组分配给所选项目 - 核心数据中的多对多关系

Assign array of items to selected item - Many to Many relationship in core data

我正在使用 Core Data 和 Swift 5.5 开发 iOS 应用 我有 2 个实体 ( Category ) 和 ( Item ),我在这些实体之间创建了多对多关系,所以在 Category 中,它有 ( items ),在 Item 中,它有 ( categories )。

现在我想将多个项目分配给选定的类别,所以我尝试了这段代码,但它没有用

var selectedItems = [Item]()

let category = selectedCategory
category.items = selectedItems

do {
  try moc.save()
} catch {
  print(error.localizedDescription)
}

这种方式在一对多关系中运作良好,但在多对多关系中却行不通。 那么我该如何解决这个问题,或者如何将一系列选定的项目分配给特定类别?

您应该使用生成的添加(或删除)方法之一,而不是写入 属性。如果关系被命名为 items 你应该有两种方法 addToItems 来添加一个或多个 Item

所以试试

 category.addToItems(NSSet(array: selectedItems))