/\*
比较和逻辑运算符
就像前面的例子中使用了==操作符,NSPredicate还支持>, >=, <, <=, !=, <>,还支持AND, OR, NOT(或写成C语言样式&&, ||, ! ),其中AND,OR,NOT还是不区分大小写的
\*/
NSArray \*array = \[NSArray array\];
NSPredicate \*predicate = \[NSPredicate predicateWithFormat:@"age <= 28"\];
for (Student \*student in array) {
//标示指定的对象是否满足谓语条件
if (\[predicate evaluateWithObject:student\]) {
NSLog(@"person name : %@",student.name);
}
}
//返回一个符合谓语条件的数组
NSArray \*newArray = \[array filteredArrayUsingPredicate:predicate\];
for (Student \*student in newArray) {
NSLog(@"person name : %@",student.name);
}
/\*
关键字 IN,BEGINSWITH,ENDSWITH,CONTAINS,LIKE,大小写都可以.添加的限制性字符串一定要添加''
\*/
Student \*student = \[\[Student alloc\]init\];
NSPredicate \*preIN = \[NSPredicate predicateWithFormat:@"student.name IN {'rose','bruse'}"\];
NSArray \*student1 = \[array filteredArrayUsingPredicate:preIN\];
//以\*\*开始beginswith
NSPredicate \*preBeginsWith = \[NSPredicate predicateWithFormat:@"student.name beginswith '滚犊子'"\];
NSArray \*student2 = \[array filteredArrayUsingPredicate:preBeginsWith\];
//以**结尾endswith
NSPredicate \*preEndsWith = \[NSPredicate predicateWithFormat:@"student.name endswith '滚犊子'"\];
NSArray \*student3 = \[array filteredArrayUsingPredicate:preEndsWith\];
//包含contains
NSPredicate \*preContains = \[NSPredicate predicateWithFormat:@"student.name contains '滚犊子'"\];
NSArray \*student4 = \[array filteredArrayUsingPredicate:preContains\];
//模糊查询like
NSPredicate \*preLike = \[NSPredicate predicateWithFormat:@"student.name like '\*%@\*'",@"滚犊子"\];
NSArray \*student5 = \[array filteredArrayUsingPredicate:preLike\];
手机扫一扫
移动阅读更方便
你可能感兴趣的文章