0

次のエンティティ関係があります A <<-->> B、わかりましたか? 今、アプリケーションの存続期間中に、タイプ A の 2 つのオブジェクトがあり、それらのオブジェクトを含む B のすべてのオブジェクトを知りたいです...

... ANY aRelationWithA.att == objectA1.att... を B エンティティで試しましたが、他のオブジェクトはどうですか...? SUBQUERIES ソリューションを見つけましたが、...SUBQUERY(aRelationWithA, $object, $object.att == objectA1.att)... を使用しているため、同じ結果ですが、他のオブジェクトはどうですか...?

これらの関係 A <<-->> B にある A オブジェクトを含む B オブジェクトが必要です。

4

3 に答える 3

0

それはかなり簡単です:

NSFetchRequest *r = [NSFetchRequest fetchRequestWithEntityName:@"B"];
[r setPredicate:[NSPredicate predicateWithFormat:@"ANY relationshipToA = %@ OR ANY relationshipToA = %@", objectA1, objectA2]];
于 2012-10-11T19:28:59.540 に答える
0

一時的に、その条件を検証するために 2 つの NSPredicates を使用しました...

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");

このトピックについて詳しく知るための返信や参照に感謝します。

于 2012-10-11T18:13:18.920 に答える
-1

この述語を使用してみてください

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY aRelationWithA in %@", [NSArray arrayWithObjects:objB1, objB2, nil]; 
于 2012-10-11T18:29:26.337 に答える