首页 > 代码库 > NSPredicate的使用
NSPredicate的使用
NSPredicate:对self每个对象通过谓词进行筛选,判断是否与条件相匹配。原理和用法都类似于SQL查询中的where,作用相当于数据库的过滤取。主要用于从集合中分拣出符合条件的对象,也可以用于字符串的正则匹配
第一、contains 判断
NSArray *array = [[NSArrayalloc]initWithObjects:@"beijing",@"shanghai",@"guangzou",@"wuhan",nil];
NSString *string = @"ang";
NSPredicate *predicate=[NSPredicatepredicateWithFormat:@"SELF CONTAINS %@",string];
NSArray *result=[array filteredArrayUsingPredicate:predicate];
NSLog(@"%@",result);
第二、in 判断
NSArray *array = [[NSArrayalloc]initWithObjects:@"beijing",@"shanghai",@"guangzou",@"wuhan",nil];
NSArray *fieltArr=[[NSArrayalloc] initWithObjects:@"welcome",@"to",@"beijing",nil];
NSPredicate *predicate=[NSPredicatepredicateWithFormat:@"SELF in %@",fieltArr];
NSArray *result=[array filteredArrayUsingPredicate:predicate];
NSLog(@"%@",result);
第三、like运算NSString *str=@"badger";
NSString *pattern=@"b??d*";
NSPredicate *predicate=[NSPredicatepredicateWithFormat:@"SELF LIKE %@",pattern];
if([predicate evaluateWithObject:str])
{
NSLog(@"YES");
}else
{
NSLog(@"NO");
}
第四、正则表达式
NSString *pattern=@".*\\_\\d{3,5}×\\d{3,5}.jpg$";
NSPredicate *predicate=[NSPredicatepredicateWithFormat:@"SELF matches %@",pattern];
NSString *str=@"fdas_300×50009.jpg";
if([predicate evaluateWithObject:str])
{
NSLog(@"YES");
}else
{
NSLog(@"NO");
}