2017-05-23 1 views
0

엔티티를 가져 오는 데 Core Data을 사용하고 있습니다. ID가 41이고 attribute의 ID가 attribute 인 엔터티 만 가져와야 isOn 속성을 YES로 설정해야합니다. 이없는 설명과 함께 내 응용 프로그램 충돌 어떤 이유로두 조건이 일치하는 엔티티를 가져 오는 NSPredicate

[NSPredicate predicateWithFormat:@"(SELF IN %@ AND ANY attributes.attributeID.intValue == 41) AND (SELF IN %@ AND ALL attributes.isOn == %@)", self.places, self.places, @YES]; 

: 여기

내가 노력하고 있습니다 것입니다.

내 조건부 형식이 잘못된 경우 아이디어가 있습니까?

편집 :

는 더 많은 연구를하는 내가 어떻게이 경우 SUBQUERY하지만 확신을 사용해야 할 것 같다. 여기에 내가 뭘하려하지만 그것도 "형식을 구문 분석 할 수 없습니다"오류와 함께 충돌 :/인출이 아닌 관련 기업 평가되고 그것은이 기업에 관련이 있기 때문에

[NSPredicate predicateWithFormat:@"SUBQUERY(SELF IN %@, $e, $e.attributes.attributeID.intValue == %i && $e.attributes.isOn == %@)[email protected] > 0)", self.places, 41, @YES] 
+0

"충돌"은 무엇을 의미합니까? 스택 추적이 있습니까? –

+0

@ AminNegm-Awad 아니요, 스택 추적이 없습니다. –

답변

0

는, 서브 쿼리 외부 SELF IN를 처리하고

[NSPredicate predicateWithFormat:@"SELF IN %@ AND (SUBQUERY(attributes, $e, $e.attributeID.intValue == %i && $e.isOn == %@)[email protected] > 0)", self.places, 41, @YES] 

는 또한, 당신의 관계 이름, attributes를 바라고 있어요, 그냥이 문제의 데모 목적입니다 : 하위 쿼리 형식은 비스듬히 조금이기도합니다. 그렇지 않은 경우 변경하는 것이 좋습니다. attributes이라는 관계를 갖는 것이 혼란 스럽습니다. 서로 배타적 인 개념입니다.

+0

그게 효과가있다. 고맙습니다!! –

관련 문제