0

我有以下实体关系 A <<-->> B,好吗?现在,在应用程序的生命周期中,我有两个 A 类型的对象,我想知道包含这些对象的 B 的所有对象......

我尝试在 B 实体上使用 ...ANY aRelationWithA.att == objectA1.att...,但是,另一个对象呢...?我找到了一个 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

暂时我使用了两个 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 回答