2015-11-06 25 views
1

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

我收到一个错误:括号中的语句是一个未使用的关闭

有没有一种合适的方式从核心数据中循环浏览NSSet并预定义类型?

+0

怎样的属性定义,想必它的自动生成时, ? – Wain

+0

这个问题是关于核心数据NSSet,所以属性“学生”将是“课堂”表和学生表之间的一对多关系。 –

+1

@TravisM。 - 我认为Wain在问如何快速定义你的属性,假设它是由Xcode自动生成的。 FWIW,你也在“数组”的情况下铸造每一个,你只是通过将整个数组转换为只包含学生类型来完成它。 –

回答

6

假设students关系是一对多的关系Student,可以转换为雨燕的关系,设定使用通用风格的语法:

for student in classroom.students! as! Set<Student> { 
    print(student.name) 
} 
+0

确认此作品!谢谢! (我不认为你首先需要这个“!”) –

+0

那些感叹号(问题)标记伤害了我的眼睛......我直到我被迫使用它才避免了迅速的主要原因。 –