OC语法--谓词NSPredicate类

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

下列列举常用的NSPredicate类的常用方法:

Person类含有name和age属性

初始化一个对象数组

 NSMutableArray *array=[NSMutableArray array];

        for (int i=0; i<10; i++) {

            Person *person=[[Person alloc]init];

            if (i<5) {

                person.name=[NSString stringWithFormat:@"jack-%d",i];

            }

            else{

                person.name=[NSString stringWithFormat:@"tom-%d",i];

            

            }

            person.age=@(20+i);

            [array addObject:person];

        }


 //设置谓词条件

        NSPredicate *predicate=[NSPredicate predicateWithFormat:@"age<25"];

         NSPredicate *predicate=[NSPredicate predicateWithFormat:@"age<%d",22];


        // 可以用and or || &&

         NSPredicate *predicate=[NSPredicate predicateWithFormat:@"age>25 ||age<27"];

        NSPredicate *predicate=[NSPredicate predicateWithFormat:@"name='tom-8'"];


         //IN关键字

           NSPredicate *predicate=[NSPredicate predicateWithFormat:@"self.name   IN{'tom-8','jack-2'}" ];


         //数组

         NSArray *inArray=@[@"tom-7",@"jack-3"];

       NSPredicate *predicate=[NSPredicate predicateWithFormat:@"self.name in%@",inArray];


        //BEGINWITH 检查某个字是否以**开头

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

        //ENDSWITH 检查某个字是否以**开头

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


         // CONTAINS 检查某个字是否以**开头

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


          //LIKE   *4*表示4前后都是有内容的

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

        NSString *s=[NSString stringWithFormat:@"name like '*%@*'",@"a"];

        NSPredicate *predicate=[NSPredicate predicateWithFormat:s ];


//判断条件

        for(Person *p in  array)

        {

            BOOL ret=[ predicate evaluateWithObject:p];

            if (ret) {

                NSLog(@"%@",p);

            }

        

        }


//对数组过滤

        NSArray *filteArray=[array filteredArrayUsingPredicate:predicate];

        NSLog(@"%@",filteArray);

        int i=10;

        NSLog("%i",i);


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值