Так у меня есть следующие объекты:Основные характеристики: Установка NSSet Swift
class Person: NSManagedObject {
@NSManaged var name: String
@NSManaged var dogs: NSSet
}
class Dog: NSManagedObject {
@NSManaged var name: String
@NSManaged var owner: NSManagedObject
}
И я думаю, что я, должно быть, пытался как пять различных способов установки собак NSSet и владелец NSManagedObject, все не повезло.
self.mutableSetValueForKey("dogs").addObject(newDog)
разваливается и бросить "Нагрузочный приложение из-за неперехваченного исключением 'NSInvalidArgumentException', причина:" *** - [NSSet intersectsSet]: установить аргумент не является NSSet"
Я пытался как из этих вариантов:
var newDogs = [newDog]
var setOfDogs = NSSet(array: newDogs) as Set<NSObject>
self.dogs.setByAddingObjectsFromSet(setOfDogs)
self.dogs.setByAddingObjectsFromArray(newDogs)
ни один из которых забрасывали и исключение, но self.dogs пуст после использования или/и тех.
Кроме того, при установке dog.owner, как мне это сделать? Я знаю, что есть методы, которые являются dog.owner.setValue (Value, Key), но я не совсем уверен, что значение и ключ ссылаются, и документация не была очень полезной.
Я знаю, что здесь есть похожие вопросы, но все они, кажется, находятся в Obj-C, и у меня возникают проблемы с ними. Любые советы оценили, спасибо!
Почему бы не «mutableCopy»? просто чтобы избежать возможных ошибок компиляции – Gabox
Вы не хотите копировать. Вы не должны пытаться обмануть компилятор, но пусть это поможет вам написать надежный, эффективный и экономичный код. – Mundi
Это сбой моего приложения: [_SwiftValue entity]: непризнанный селектор, отправленный в экземпляр –