循环核心数据 NSSet 的正确语法

2024-04-27

每当我循环遍历核心数据关系(NSSet)时,我必须将集合转换为数组:

for student in classroom.students.allObjects as! [Student] {
    print(student.name)
}

或者我可以正常循环遍历集合,但我必须先对项目进行类型转换才能使用它:

for student in classroom.students {
    let s = student as! Student
    print(s.name)
}

我知道这很简单,但我想做的只是在循环中预先指定 NSSet 的转换,而不必执行这些解决方法?

当我尝试这样做时:

for student: Student in classroom.students {
    print(student.name)
}

我收到错误:表达式类型“NSSet”在没有更多上下文的情况下不明确

如果我尝试这样的事情:

for student in classroom.students as! NSSet([Student]) {
    print(student.name)
}

我收到错误:带花括号的语句块是未使用的闭包

是否有一种正确的方法可以从 Core Data 循环遍历 NSSet 并预定义类型?


假设students关系是一对多关系Student,您可以使用泛型语法将关系转换为 Swift 集:

for student in classroom.students! as! Set<Student> {
    print(student.name)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

循环核心数据 NSSet 的正确语法 的相关文章

随机推荐