NSPredicate 在获取时乘以值

NSPredicate multiply values while Fetching

我有两个值码和英里,我想以此为基础获取。如果用户输入了这两个值,那么我想将这两个值合并为 miles*1760 码。早些时候,当我只分别取码或英里时,我正在做

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

有什么办法可以做到这一点吗?

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

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

将select那些总距离(英里 * 1760 + 码)大于 5000 的项目。