繁体   English   中英

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

[英]Proper Syntax to Loop Through Core Data NSSet

每当我遍历核心数据关系(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)
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM