2013-05-19 2 views
5

두 클래스 인 Company와 MyCompany가 있습니다. MyCompany는 Company의 하위 클래스이고 Company는 NSManagedObject의 하위 클래스입니다. 클래스 회사의 결과를 반환하지만 MyCompany 개체를 필터링 할 NSFetchRequest에 대한 조건부를 작성하려고합니다.하위 클래스 결과를 필터링하는 NSPredicate

나는 (https://stackoverflow.com/a/8065935/472344 여기에서 제안) 다음과 같은 시도 :

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"class != %@",NSStringFromClass([myCompany class])]; 

하지만 내가 오류 얻을 :

나는 또한 시도
'keypath class not found in entity <NSSQLEntity CKCompany id=1>' 

(여기 https://stackoverflow.com/a/11693983/472344에서 제안을, 내가 정말 원하는 알고 SELF isKindOfClass가 아니지만 대답과 똑같은 명령으로 테스트 한 것입니다.)

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self isKindOfClass: %@", [myCompany class]; 

그리고 다음과 같은 오류 있어요 :

'Unknown/unsupported comparison predicate operator type' 

어떻게 내가 원하는 것을 달성하기 위해 술어를 쓸 수 있습니까? iOS 5 이상을 지원합니다. 페치 요청이 요청 정확하게 개체 타입의 객체를 반환하고 subentities을 포함하지 않도록

+0

해당 클래스가 NSObject가 아니므로 "class"또는 "className"에 응답하지 않습니다. – Stavash

+0

회사 및 MyCompany는 NSManagedObject에서 상속하는 것처럼 NSObject이지만 NSAnifiedObject에서 상속 한 것처럼 NSObject입니다.하지만 이제는 술어가 NSSQLEntity 그래서 내 상황은 그 응답이 응답 상황에 해당하지 않습니다. 그러나 나는 여전히 내 문제에 대한 해결책이 필요하다. – Darren

답변

7

당신은

[fetchRequest setIncludesSubentities:NO]; 

을 설정할 수 있습니다.

코어 데이터 가져 오기 요청에서 조건자를 사용하는 경우 (필자가 아는 한) 술어에서 개체 클래스 또는 엔티티 이름을 참조 할 수 없습니다.

+0

작동하는 것처럼 들리지만 추가 정보를 보내 주셔서 감사합니다. 나는 이것을 시도 할 것이다. – Darren

+0

그것이 작동하는지 확인할 수 있습니다. – pr1001

관련 문제