Как создать основные отношения данных в Swift
У меня есть две сущности в моей модели данных: студент > класс
В Objective-C я могу использовать следующую строку, чтобы связать отношения моих двух объектов:
[newStudent setValue:[NSSet setWithObject:newGrade] forKey:@"grades"];
Однако в Swift нет NSSet. Как мне сделать то же самое?
newStudent.setValue(??????, forKey: "grades")
2 ответа:
Как уже было сказано, вы можете использовать
NSSet
для назначения отношения to-many.Но на самом деле проще назначить обратную (к-одному) зависимость от
Grade
доStudent
:Это автоматически обновит обратную зависимость, т. е. добавит объектnewGrade.setValue(newStudent, forKey: "student")
newGrade
к свойствуgrades
объектаnewStudent
.И то, что вы на самом деле должны сделать, это создать подклассы
NSMangedObject
для ваших сущностей (в меню" Xcode-> Edit"), а затем используйте собственность аксессоры:newGrade.student = newStudent
Это легче читать, легче писать, вы не рискуете ошибки ввода в ключевых строках, и компилятор может выполнить правильная проверка типа.