首页 > 代码库 > Predicate

Predicate

谓词

什么是谓词:

谓词:在计算机语言的环境下,谓词是指条件表达式的求值返回真或假的过程。

谓词基本用法:

基本谓词的用法,创建一个谓词,这个谓词的判断条件是汽车的name是否与Herbie相同 需要注意的是,如果不使用单引号的话,谓词格式将会把字符串理解成keyPath,如果使用单引号的话。谓词为理解为字符串

?
1
2
3
4
5
6
7
8
9
10
11
//创建谓词
 NSPredicate *predicate;
 //谓词的判断条件
 predicate = [NSPredicate predicateWithFormat:@"name ==‘Herbie‘"];
 //在这里判断是否匹配
 BOOL match = [predicate evaluateWithObject:car];
 if (match) {
     NSLog(@"match");
 }else {
     NSLog(@"Not match");
 }

谓词判断条件的方式

1,硬编码条件(不推荐)

?
1
predicate = [NSPredicate predicateWithFormat:@"engine.horsepower > 150"];

2,传递参数条件(推荐)

?
1
2
int horsePower = 50;
predicate = [NSPredicate predicateWithFormat:@"engine.horsepower > %d",horsePower];

3,占位符(先把位置站好,需要的时候再传递参数)(技术性条件):$符号开头

?
1
2
3
predicateTemplate = [NSPredicate predicateWithFormat:@"engine.horsepower > $POWER"];
varDict = @{@"POWER": @150};
predicate = [predicateTemplate predicateWithSubstitutionVariables:varDict];

谓词判断条件运算符

比较运算符:> < >= <= != <>

逻辑运算符:与 或 非 相对应的标示符 AND OR

?
1
2
predicate = [NSPredicate predicateWithFormat:@"(engine.horsepower > 50) AND (engine.horsepower < 200)"];
predicate = [NSPredicate predicateWithFormat:@"(engine.horsepower < 50) OR (engine.horsepower > 200)"];