2011-02-18 4 views
1

코어 데이터 엔티티 A는 엔티티 B와 일대일 관계를 가지며 엔티티 C와 일대일 관계를 가지며이 엔티티 B에는 두 가지 속성 (유형 및 값)이 있습니다.2 레벨 드릴 다운을위한 NSPredicate?

>> A = B = C >> (그래서 : A.Bs.Cs.type, A.Bs.Cs.value)

뭐죠 모두의 임의의 B를 갖도록하는 NSArray 필터 조건이 (type == 'test1'& & value == 'test2')가있는 C가 있습니까?

본 적이있는 하위 쿼리 샘플은 한 단계 아래로 내려갔습니다.

은 또한 및 subpredicate 2) "모든 Bs.Cs.value == 'TEST2'"아무것도하지만 반환 subpredicate으로 1) "== 'TEST1'가 어떤 Bs.Cs.type을" [NSCompoundPredicate andPredicateWithSubpredicates:] 을 시도했다.

예, NSPredicate & 친구 문서를 보았지만 멀티 레벨 드릴 다운에 대해서는 찾을 수 없습니다.

답변

4

여기에 문서화 된 NSExpression +expressionForSubquery:usingIteratorVariable:predicate: 또는 표현식 구문을 사용해야합니다.

나는 귀하의 경우 것이

(SUBQUERY(Bs, $b, 
    SUBQUERY($b.Cs, $c, $c.type=='text1' && $c.value='test2')[email protected] != 0 
)[email protected] != 0) 
+0

네 같은 것이, 완벽하게 작동 될 것 같아요. 정말 고맙습니다. 이것은 나를 알아내는 데 오랜 시간이 걸렸을 것입니다. –

+0

+1 너무 아름다워 ... –

관련 문제