#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
такое ?