Проблема пользовательских атрибутов Core Data - PullRequest
0 голосов
/ 27 февраля 2019

Я хочу, чтобы в объекте с именем Room был массив массива Person (в основном я хочу атрибут в Room с пользовательским типом Person), но при выполнении room.persons = currentRoomPersons приложение блокируется иSIGARBT ошибка, текущий код это что-то вроде этого ( код Github ):

Room + CoreDataClass.swift:

import Foundation
import CoreData

@objc(Room)
public class Room: NSManagedObject {}

Room + CoreDataProperties.swift:

import Foundation
import CoreData
extension Room {
    @nonobjc public class func fetchRequest() -> NSFetchRequest<Room> {
        return NSFetchRequest<Room>(entityName: "Room")
    }

    @NSManaged public var persons: [Person]? // Array of entity "Person" in the room.
}

SIGARBT это то, что он говорит: Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Room setPersons:]: unrecognized selector sent to instance 0x600001d1eee0'

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

Что я делаю не так?

Спасибо.

1 Ответ

0 голосов
/ 27 февраля 2019

Объекты должны быть связаны друг с другом с помощью Отношения , а не объявляться как Атрибут .

Пожалуйста, прочтите раздел Определение атрибутов и отношений в ядреРуководство по программированию данных

Тип отношения To-Many по умолчанию NSSet?.Настоятельно рекомендуется изменить тип на необязательный native Set<Person>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...