2017-06-27 124 views
0

我在我的項目中使用CoreData和NSFetchedResultsController。我有2個實體學校&學生,一對多關係..一所學校可以有多個學生。NSPredicate過濾器關係

我試圖按學校名稱過濾學校,然後按照等級過濾學生,這樣我就得到了只包含符合某個等級的學生的過濾學校。

let fetchRequest = NSFetchRequest<School>(entityName: "School") 
    let predicate = NSPredicate(format: "name = %@ AND ANY students.grade","School 2", "F") 

與上面提到的謂詞代碼的問題是,它返回我「學校2」所有的學生,而只有一個學生有「F」級。

我需要一個學校實體,應該只包含「F」級學生。

回答

0

您獲取的學校對象將始終提供與關係如何取回對象無關的所有值。你可以做的是過濾學生。所以你有一套school.students和第二套只包含失敗的學生。由於學生的過濾在內存中,因此您不僅限於核心數據屬性,還可能會稍微慢一些。