我的数据模型中有两个实体:Student< - >>等级
在Objective-C中,我可以使用以下行链接我的两个对象的关系:
[newStudent setValue:[NSSet setWithObject:newGrade] forKey:@"grades"];
然而在Swift中,没有NSSet。我如何执行相同的操作?
newStudent.setValue(??????, forKey: "grades")
答案 0 :(得分:7)
Swift肯定有NSSet
:
newStudent.setValue(NSSet(object: newGrade), forKey: "grades")
在Xcode 6.3和Swift 1.2中,还有一个原生的Set
类型。这通常会越过NSSet
到Set<NSObject>
。
答案 1 :(得分:3)
如上所述,您可以使用NSSet
分配多对多关系。
但实际上更容易分配逆(一对)关系
从Grade
到Student
:
newGrade.setValue(newStudent, forKey: "student")
这将自动更新反向关系,即将<{em}} newGrade
对象添加到grades
的{{1}}属性。
您实际应该做的是创建newStudent
子类
对于您的实体(在“Xcode-&gt;编辑”菜单中)然后使用
财产访问者:
NSMangedObject
这样更容易阅读,更容易编写,您不会冒险 在键字符串中键入错误,编译器可以执行 正确的类型检查。