NSPredicate 谓词的简单使用

NSPredicate:谓词,可用于数据查询、筛选。

运算符

用法

创建数组:

Person * p1 = [Person new];
p1.name = @"p1";
p1.age = 1;
    
Person * p2 = [Person new];
p2.name = @"p2";
p2.age = 2;
    
Person * p3 = [Person new];
p3.name = @"ps3";
p3.age = 3;
    
Person * p4 = [Person new];
p4.name = @"sp4";
p4.age = 4;
    
NSArray * array = @[p1,p2,p3,p4];

筛选小于3的对象

NSPredicate * predicate = [NSPredicate predicateWithFormat:@"age<3"];
NSArray * array1 =  [array filteredArrayUsingPredicate:predicate];

筛选范围内的对象

NSPredicate * predicate2 = [NSPredicate predicateWithFormat:@"age in {2,3} || name in {'p1','p2'}"];
NSArray * array2 =  [array filteredArrayUsingPredicate:predicate2];

模糊查询 *a* 代表有a的对象

NSPredicate * predicate3 = [NSPredicate predicateWithFormat:@"name like '*a*'"];
NSArray * array3 =  [array filteredArrayUsingPredicate:predicate3];

模糊查询 ?a* 第二位是a的对象

 NSPredicate * predicate3 = [NSPredicate predicateWithFormat:@"name like '?a*'"];
NSArray * array3 =  [array filteredArrayUsingPredicate:predicate3];

key赋值需要用%K(大写), $valueName,代表可以在其他地方重新赋值

NSPredicate * predicate4 = [NSPredicate predicateWithFormat:@"%K >  $ageValue",@"age"];
NSPredicate * NewPedicate4 = [predicate4 predicateWithSubstitutionVariables:@{@"ageValue":@(3)}];
NSArray * array4 =  [array filteredArrayUsingPredicate:NewPedicate4];

正则匹配手机号

NSPredicate * predicate5 = [NSPredicate predicateWithFormat:@"self matches %@",@"^[1][3-8]\\d{9}$"];
BOOL isMatch = [predicate5 evaluateWithObject:@"18888888888"];

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值