4

나는 이것을 찾고 있었지만 아무 것도 발견하지 못했고 코어 데이터가 지원하지 않는다고 생각합니다. 어쨌든 보자 :하위 속성으로 필터링 할 핵심 데이터 술어

나는 엔티티가 Ticket, TicketLineCheffLine 인 엔티티가 있습니다.

A Ticket contains multiple TicketLines (Ticket.lines). **CheffLine** inherits from TicketLine.

은 지금의 (a NSFetchedResultsController에 의한) 티켓을 가져 싶지만, 0보다 cheffStatus보다 적어도 하나 CheffLine이 티켓을 필터링. 문제는 cheffStatusCheffLine 개체의 속성이다, 그래서이 술어합니다

[NSPredicate predicateWithFormat:@"0 != SUBQUERY(lines, $x, $x.cheffStatus > 0)[email protected])"]; 

하지만 실행될 때이 오류가 얻을 : 나는 쿼리가 완료되면 것으로 나타났습니다

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unable to generate SQL for predicate (0 != SUBQUERY(lines, $x, $x.cheffStatus > 0)[email protected]) (problem on RHS)'

$x.cheffStatus 대신 $x.someVariableInTheTicketLineEntity을 사용하면 작동합니다. 나는 또한 CAST를 사용하려고 시도했지만 동일한 결과를 얻었다.

[NSPredicate predicateWithFormat:@"0 != SUBQUERY(lines, $x, CAST($x, 'CheffLine').cheffStatus > 0)[email protected])"]; 

이 쿼리를 수행하는 방법이 있습니까? 그것은 NSFetchedResultsController 안에서 작동해야한다는 것을 기억하십시오.

+0

저는 솔루션을 보지 못했습니다. 따라서 CheffLine 개체를 직접 가져 오도록 내 인출 요청을 변경 한 다음 NSFetchedResultsController 대리자 함수에서 모든 노력을 다할 것입니다. – quarac

+0

이 경우에는 작동했지만, 하지만 지금은 CheffLine의 다른 하위 개체와 같은 종류의 다른 문제가 있습니다. 이동 방법은 핵심 데이터에서 자식 엔티티를 사용하지 않는 것입니다. 지금은 불가능한 것입니다. – quarac

답변

관련 문제