2017-06-27 7 views
0

私は自分のプロジェクトでCoreDataとNSFetchedResultsControllerを使用しています。私は2つの実体を持っています。&生徒、1対多の関係..学校は複数の生徒を持つことができます。NSPredicateフィルタの関係

私は学校名で学校をフィルタリングして、あるグレードに合った学生のみを含むフィルタリングされた学校を取得するように、グレードによって学生をフィルタリングしようとしています。

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

上記述語コードの問題は、それが私の唯一の学生が「F」グレードを持っているのに対し、すべての学生との「学校2」を返すことです。

「F」等級の学生のみが含まれるスクールエンティティが必要です。

答えて

0

フェッチしたスクールオブジェクトは、オブジェクトをフェッチした方法とは無関係に、関係にあるすべての値を常に返します。あなたができることは、学生をフィルタリングすることです。だからあなたは、セットschool.studentsと失敗した学生だけを含む2番目のセットを作る。生徒のフィルタリングはメモリ内にあるため、コアデータのプロパティに限定されるわけではありませんが、少し遅くなる場合もあります。

関連する問題