您的位置:首页 > 其它

谓词 (NSPredicate)使用详情

2016-04-09 10:18 399 查看
谓词

更加详细:http://blog.csdn.net/ztp800201/article/details/8116081

//判断是否满足条件

第一种

判断一个数组(array)中满足条件的

NSPredicate *predicate = [NSPredicate predicateWithFormat:@“age < 20”];//定义谓词

for(Person *p in array ) {

//根据谓词选出合适的 ,看是数组中有满足条件的

BOOL ret = [predicate evaluateWithObject:p];

if(ret){

NSLog (@“%@“,p);//要想打印出数组的内容 ,要在Person 类中 实现方法 -(NSString*)decription{}

}

}

第二种:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@“age < 20”];//定义谓词

NSArray *filterArray = [array filteredArrayUsingPredicate:predicate];//通过谓词直接过滤,记得区分 可变数组 和不可变数组使用的 操作词是不一样的

NSLog(@“”);

//谓词可以使用格式占位符

NSPredicate *predicate = [NSPredicate predicateWithFormat:@“age < %d”,20];//定义谓词

//谓词使用运算符((and &&)与( || or)) 这两种运算符不分大小写

NSPredicate *predicate = [NSPredicate predicateWithFormat:@“age> 25 AND age<28”];//定义谓词

//IN 在使用的时候 {‘ ’,’ ‘ }是单引号 和逗号 ,也可以使用数组对象,在用占位符导入

NSPredicate *predicate = [NSPredicate predicateWithFormat:@“name in {‘jack -1’,’tom -3’,’xxx’}"];//定义谓词

//BEGINSWITH ENDSWITH CONTAINS 关键字 大小写敏感

NSPredicate *predicate = [NSPredicate predicateWithFormat:@“name BEGINSWITH ‘J'”];//定义谓词

NSPredicate *predicate = [NSPredicate predicateWithFormat:@“name ENDSWITH

‘8'”];

//定义谓词NSPredicate *predicate = [NSPredicate predicateWithFormat:@“name CONTAINS

‘’a”];//定义谓词

//最实用的是 like *a*

NSPredicate *predicate = [NSPredicate predicateWithFormat:@“name like

‘*a*'”];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: