假设我在IOS中有以下核心数据结构:
Parent1
Child1.1: Text='A', Number=1
Child1.2: Text='B', Number=1
Parent2
Child2.1: Text='B', Number=1
Child2.2: Text='A', Number=2
Parent3
Child3.1: Text='B', Number=2
Child3.2: Text='A', Number=1
我想检索所有有Text=' a '和Number=1的孩子的父母(在上面的例子中是Parent1和Parent3)。
基本上我需要的是父实体上的谓词,看起来像:
ANY (child.Text = 'A' AND child.Number = 1)
但这不起作用-似乎我不能在ANY关键字后面加上括号。
下面的内容也不是很好(即使它是有效的):
ANY child.Text = 'A' AND ANY child.Number = 1
因为它也返回Parent2。
是否有一种方法可以在谓词中做到这一点,或者我是否必须以编程方式做到这一点(例如,在不使用ANY关键字的情况下检索孩子,并从后面的关系中构造一个父母数组)?
在一个谓词你必须使用==相等-它工作吗?
您还可以查看NSCompoundPredicate,它将谓词部分与AND和OR组合在一起,如
<>之前
NSMutableArray* predicatesToCombine = [[NSMutableArray alloc]init];
[predicatesToCombine addObject:@"child.Text == 'A'"];
[predicatesToCombine addObject:@"child.Number == 1"];
NSPredicate* predicate = [NSCompoundPredicate andPredicateWithSubpredicates:predicatesToCombine];
...
[predicatesToCombine release];