나는 다음과 같은 모델을 그래프이 : 나는 목록을 항목의 목록을 표시 오전 jQuery과에서코어 데이터가 일대일 관계를 통해 요청 술어 필터링을 가져
+-----------+ +-----------+
| Container | | Group |
+-----------+ +-----------+
| groups |<-->>| container |
+-----------+ +-----------+
^ ^
| |
+-----------+ +-----------+ +-----------+ +---------+
| Owner | | ToyBox | | ToyType | | Item |
+-----------+ +-----------+ +-----------+ +---------+
| toyBox |<--->| owner | | items |<-->>| toyType |
+-----------+ +-----------+ +-----------+ +---------+
합니다. 이 경우 특정 소유자에게 속한 항목 만 표시하려고합니다. 이렇게하려면 NSFetchedResultsController를 사용하여 항목을 표시합니다. 이것은 NSFetchedResultsController에게 줄 적절한 NSPredicate로 NSFetchRequest를 생성해야한다는 것을 의미합니다.
keypath 조건자를 사용하면 상위 엔티티로 인해 예외가 발생합니다. 이것은 Apple 버그이거나 지원하지 않기로 결정한 것 같습니다. 레이다가 접수되었습니다. 또한 엔티티를 병합하지 않으려합니다. 이것은 다음과 같은 예외가 발생
NSFetchRequest *itemsFetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Item"];
NSPredicate *itemsPredicate = [NSPredicate predicateWithFormat:@"SUBQUERY(toyItem, $g, SUBQUERY($g.container, $c, SUBQUERY($c.owner, $o, $o = %@)[email protected] > 0)[email protected] > 0)[email protected] > 0", ownerObject];
:
그래서 다음과 같이 하위 쿼리와 함께이 작업을 수행하기 위해() 나를 남겨 그
Can't have a non-relationship collection element in a subquerySUBQUERY($c.owner, $o, $o == <MLMOOwner: ...
내가 실현 관계가 하나이기 때문에 그 소유자와 ToyBox 사이에 컬렉션이 반환되지 않았으며 이것이 문제입니다. 그래서 내 질문은 :
1) 하위 쿼리에서 1 대 1 관계의 컬렉션을 강제로 반환하는 방법이 있습니까?
2) 가져 오기 요청에 대해이 술어를 작성하는 다른 방법이 있습니까?
당신은 심지어 자기를 떠날 수 있습니다. 아웃. –
@Scott 좋은 지적입니다. – Caleb
@Caleb 피드백에 감사드립니다. 필자가 구현 한 첫 번째 방법은 keypath 방식이었으며 예외도있었습니다. 방금 다시 시도해 보니 다음과 같이 되돌아옵니다 :'keypath group.container. 엔티티에 소유자가 없습니다. –