如何在Swift中创建核心数据关系

时间:2015-04-20 17:08:10

标签: ios swift core-data set nsset

我的数据模型中有两个实体:Student< - >>等级

在Objective-C中,我可以使用以下行链接我的两个对象的关系:

[newStudent setValue:[NSSet setWithObject:newGrade] forKey:@"grades"];

然而在Swift中,没有NSSet。我如何执行相同的操作?

newStudent.setValue(??????, forKey: "grades")

2 个答案:

答案 0 :(得分:7)

Swift肯定有NSSet

newStudent.setValue(NSSet(object: newGrade), forKey: "grades")

在Xcode 6.3和Swift 1.2中,还有一个原生的Set类型。这通常会越过NSSetSet<NSObject>

答案 1 :(得分:3)

如上所述,您可以使用NSSet分配多对多关系。

但实际上更容易分配逆(一对)关系 从GradeStudent

newGrade.setValue(newStudent, forKey: "student")

这将自动更新反向关系,即将<{em}} newGrade对象添加到grades的{​​{1}}属性。

您实际应该做的是创建newStudent子类 对于您的实体(在“Xcode-&gt;编辑”菜单中)然后使用 财产访问者:

NSMangedObject

这样更容易阅读,更容易编写,您不会冒险 在键字符串中键入错误,编译器可以执行 正确的类型检查。