NSPredicate类,指定过滤器的条件---董鑫
阅读原文时间:2023年07月11日阅读:1
/\*  
 比较和逻辑运算符  
 就像前面的例子中使用了==操作符,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\];

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章