NSPredicate在获取时乘以值

时间:2015-09-02 07:02:13

标签: objective-c core-data nspredicate nsfetchrequest

根据我要获取的数据,我有两个值码和英里数。如果用户输入了两个值,那么我想将两个值合并为一英里* 1760码。早些时候,当我独自提取码数或英里时,我正在做

if (![[optional valueForKey:@"Miles"] isEqualToNumber:[NSNumber numberWithInt:0]]) {
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"miles <= %@",[optional valueForKey:@"Miles"]];
    [predicateArray addObject:predicate];
}

我有什么想法可以做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以在谓词中使用NSExpression documentation中描述的功能。例如:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"add:to:(multiply:by:(miles,1760),yards) > %@", @(5000)];

将选择总距离(英里* 1760 +码)大于5000的项目。