NSPredicate的使用

时间:2014-04-29 13:32:23   收藏:0   阅读:375

NSPredicate:对self每个对象通过谓词进行筛选,判断是否与条件相匹配。原理和用法都类似于SQL查询中的where,作用相当于数据库的过滤取。主要用于从集合中分拣出符合条件的对象,也可以用于字符串的正则匹配

第一、contains 判断

        NSArray *array = [[NSArray alloc]initWithObjects:@"beijing",@"shanghai",@"guangzou",@"wuhan", nil];

        NSString *string = @"ang";

        NSPredicate *predicate=[NSPredicate predicateWithFormat:@"SELF CONTAINS %@",string];

        NSArray *result=[array filteredArrayUsingPredicate:predicate];

        NSLog(@"%@",result);

第二、in 判断

        NSArray *array = [[NSArray alloc]initWithObjects:@"beijing",@"shanghai",@"guangzou",@"wuhan", nil];

        NSArray *fieltArr=[[NSArray alloc] initWithObjects:@"welcome",@"to",@"beijing",nil];

        NSPredicate *predicate=[NSPredicate predicateWithFormat:@"SELF in %@",fieltArr];

        NSArray *result=[array filteredArrayUsingPredicate:predicate];

        NSLog(@"%@",result);

第三、like运算

        NSString *str=@"badger";

        NSString *pattern=@"b??d*";

        NSPredicate *predicate=[NSPredicate predicateWithFormat:@"SELF LIKE %@",pattern];

        if([predicate evaluateWithObject:str])

        {

            NSLog(@"YES");

        }else

        {

            NSLog(@"NO");

        }

第四、正则表达式

        NSString *pattern=@".*\\_\\d{3,5}×\\d{3,5}.jpg$";

        NSPredicate *predicate=[NSPredicate predicateWithFormat:@"SELF matches %@",pattern];

        NSString *str=@"fdas_300×50009.jpg";

        if([predicate evaluateWithObject:str])

        {

            NSLog(@"YES");

        }else

        {

            NSLog(@"NO");

        }


NSPredicate的使用,码迷,mamicode.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!