Назначить массив элементов выбранному элементу — отношение «Многие ко многим» в основных данных

#ios #swift #core-data

Вопрос:

Я работаю над приложением iOS с основными данными и Swift 5.5.У меня есть 2 объекта ( Категория ) и ( Элемент), и я создал взаимосвязь «Многие ко многим» между этими объектами, поэтому в категории есть ( элементы), а в элементе есть ( категории).

теперь я хочу назначить несколько элементов выбранной категории, поэтому я попробовал этот код, но он не сработал

 var selectedItems = [Item]()

let category = selectedCategory
category.items = selectedItems

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

 

Этот способ хорошо работает в отношениях «Один ко многим», но во многих отношениях это не сработало.
Итак, как я могу устранить эту проблему или как я могу назначить массив выбранных элементов определенной категории?

Ответ №1:

Вместо записи в свойство следует использовать один из сгенерированных методов добавления (или удаления). Если связь названа items , у вас должно быть два метода addToItems для добавления одного или нескольких Item

Так что попробуй

  category.addToItems(NSSet(array: selectedItems))
 

Комментарии:

1. Спасибо, я попробовал этот метод, но он принимает только один элемент, я попытался передать массив элементов, но он выдал мне следующую ошибку: Нет точных совпадений при вызове метода экземпляра «addToItems»

2. Используйте for цикл для добавления каждого элемента

3. @AdelBassiony требуется набор при добавлении нескольких объектов, я обновил ответ

4. @JoakimDanielson Я попробовал это с обновленным решением, но получил ту же ошибку ( нет точных совпадений при вызове метода экземпляра «addToItems»)

5. Имя отношений items такое ?