NSPredicate类在OC中用法

基本概念:

cocoa中提供了NSPredicate类,指定过滤器的条件,将符合的对象保留下来

创建谓词:

       NSPredicate *predicate=[NSPredicatepredicateWithFormat:@"age>25 and age<29"];

判断是否满足条件

           [predicate evaluateWithObject:personObj]

对数组过滤

        NSArray *newArr=[arrfilteredArrayUsingPredicate:predicate];

        NSLog(@"%@",newArr);

NSPredicate提供的过滤条件多种多样

第一、对于数字       

NSPredicate *predicate=[NSPredicatepredicateWithFormat:@"age>25 and age<29"];

 第二、对于字符串

    NSPredicate *predicate=[NSPredicate predicateWithFormat:@"name='jack_2'"];

in用法

    NSPredicate *predicate=[NSPredicate predicateWithFormat:@"name in {'jack_2','tom_8'}"];

数组in用法

    NSArray *array=[NSArray arrayWithObjects:@"jack_2",@"tom_8",nil];

    NSPredicate *predicate=[NSPredicate predicateWithFormat:@"name in %@",array];

 第三、BEGINSWITH关键字

    NSPredicate *predicate=[NSPredicate predicateWithFormat:@"name BEGINSWITH 't'"];

 第四、CONTAINS关键词

  NSPredicate *predicate=[NSPredicate predicateWithFormat:@"name CONTAINS 'a'"];

  第五、like用法       

NSString *s=[NSStringstringWithFormat:@"name like '*%@*'",@"c"];

  NSPredicate *predicate=[NSPredicate predicateWithFormat:s];

   第六、ENDSWITH

  NSPredicate *predicate=[NSPredicate predicateWithFormat:@"name ENDSWITH '_8'"];

sample:

  1.         //运算符  
  2.        NSPredicate *predicate=[NSPredicate predicateWithFormat:@"age>25 and age<29"];  
  3.         //字符串  
  4.       //NSPredicate *predicate=[NSPredicate predicateWithFormat:@"name='jack_2'"];  
  5. //        NSPredicate *predicate=[NSPredicate predicateWithFormat:@"name in {'jack_2','tom_8'}"];  
  6.           
  7. //        NSArray *array=[NSArray arrayWithObjects:@"jack_2",@"tom_8",nil];  
  8. //      NSPredicate *predicate=[NSPredicate predicateWithFormat:@"name in %@",array];  
  9.           
  10.         //BEGINSWITH关键字  
  11. //        NSPredicate *predicate=[NSPredicate predicateWithFormat:@"name BEGINSWITH 't'"];  
  12.           
  13.         //CONTAINS关键词  
  14. //    NSPredicate *predicate=[NSPredicate predicateWithFormat:@"name CONTAINS 'a'"];  
  15.       //  
  16.         NSString *s=[NSString stringWithFormat:@"name like '*%@*'",@"c"];  
  17.         NSPredicate *predicate=[NSPredicate predicateWithFormat:s];  
  18.           
  19.         //ENDSWITH  
  20. //        NSPredicate *predicate=[NSPredicate predicateWithFormat:@"name ENDSWITH '_8'"];  
  21.   
  22.         //判断是否满足条件  
  23.         for(person *personObj in arr)  
  24.         {  
  25.             if([predicate evaluateWithObject:personObj])  
  26.             {  
  27.                // NSLog(@"%@",personObj);  
  28.             }  
  29.         }  
  30.         //对数组过滤  
  31.         NSArray *newArr=[arr filteredArrayUsingPredicate:predicate];  
  32.         NSLog(@"%@",newArr);  



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值