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 的项目。
我有两个值码和英里,我想以此为基础获取。如果用户输入了这两个值,那么我想将这两个值合并为 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 的项目。