如何根据关系过滤CoreData结果

时间:2013-10-31 16:32:25

标签: core-data nspredicate

我有一个用户列表,每个用户都有

Users.accounts ---> Accounts.measurements ---> measurement.account

我想从测量“表”中提取所有测量值,其中measurement.account =一个特定的帐户,其中measurement.type(属性)是“风速”的例子。

所以我: 在测量上创建获取请求 我想创建一个谓词type =“wind speed”和account = {NSAccount object}

我该怎么做?

测量类型很简单:

*predicate = [NSPredicate predicateWithFormat:@"measuretype = 'air speed'];

指定关系,我不知道:

myAccountObject *myAccount=[accountFromId:@"6785"];
*accountpredicate = [NSPredicate predicateWithFormat:@"account = ???",myAccount];

1 个答案:

答案 0 :(得分:0)

在谓词中,%@是对象值的var arg替换,所以

[NSPredicate predicateWithFormat:@"account = %@",myAccount]

可能就是你要找的东西。即使对于常量字符串,这也是可取的,因为它避免了嵌入式引号或其他特殊字符的问题 必须另有引用。所以你的组合谓词将是:

[NSPredicate predicateWithFormat:@"measuretype = %@ AND account = %@",
        @"air speed", myAccount]

有关详细信息,请参阅中的"Predicate Format String Syntax" “谓词编程指南”。