2012-10-10 6 views
0

다음 개체 관계가 있습니다. < < - >> B, ok? 이제 응용 프로그램의 수명 동안 두 개의 A 형 개체가 있고 그 개체를 포함하는 B 개체를 모두 알고 싶습니다. ...NSPredicate를 여러 관계로 배송

시도해 보았습니다 ... ANY aRelationWithA.att == objectA1.att ... B 엔티티를 통해,하지만, 다른 객체는 어떨까요 ...? 나는 SUBQUERIES 솔루션을 찾았지만 같은 결과를 얻었습니다 ... SUBQUERY (aRelationWithA, $ object, $ object.att == objectA1.att) ...하지만 다른 오브젝트는 어떨까요 ...?

이 관계에 A 객체가 들어있는 B 객체가 필요합니다. A 선박 < < - >> B, 안부!

+0

하지 않습니다'서브 쿼리 (aRelationWithA, $ 개체, $의 object.att == objectA1.att && $ object.att == objectA2.att)'작동합니까? – barley

+0

답변 해 주셔서 감사합니다. 작동하지 않습니다. – specktro

답변

0

Temporaly은 내가 당신의 응답 또는이 주제에 대한 자세한 내용은 몇 가지 기준을 주셔서 감사합니다 ... 해당 조건의 유효성을 검사

NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"B"]; 
propertyRequest.predicate = [NSPredicate predicateWithFormat:@"ANY aRelationWithA.att == %@", objectA1.att]; 
NSError *error; 
NSArray *collection1 = [context executeFetchRequest:request error:&error]; 
NSArray *collection2 = [collection1 filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"ANY aRelationWithA.att == %@", objectA2.att]]; 
if (collection2.count) NSLog(@"There are some objects with that condition"); 

을 두 NSPredicates을 사용!

0

에 한번 사용이 술어

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY aRelationWithA in %@", [NSArray arrayWithObjects:objB1, objB2, nil]; 
+0

답변 주셔서 감사합니다, 그 해결책을 탐색했지만 작동하지 않았다 ... – specktro

+0

나는 내 대답을 udated. 나는 술어 – NeverBe

+0

에서 ".attr"을 제거했습니다. 귀하의 솔루션은 실패하지 않지만 올바른 결과를 제공하지 않습니다. 감사합니다! – specktro

0

그것은 매우 간단합니다 :

NSFetchRequest *r = [NSFetchRequest fetchRequestWithEntityName:@"B"]; 
[r setPredicate:[NSPredicate predicateWithFormat:@"ANY relationshipToA = %@ OR ANY relationshipToA = %@", objectA1, objectA2]]; 
+0

나는 그것을 시도, 감사합니다 ... – specktro

+0

그것은 너무 일하지 않았다 ... 죄송합니다! – specktro

+0

@specktro 질문에 더 많은 정보를 포함시켜야합니다. 정확히 무엇을했는지 설명하십시오. 당신이해야 할 일이 몇 가지 있지만 분명히 대답 할 수는 없기 때문에 성취하려고하는 것을 정확히 설명하십시오. 당신이하고있는 일과하고 싶은 일을 보여주십시오. –

관련 문제