2015-11-06 63 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

那些感嘆號(問題)標記傷害了我的眼睛......我直到我被迫使用它才避免了迅速的主要原因。 –

相關問題