检索具有特定子节点的所有父节点?(IOS)



假设我在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];

最新更新