iOS开发之NSPredicate的基本用法

释放双眼,带上耳机,听听看~!

 

一.数组的KVC去重

NSArray * testArr = @[@”obj”,@”obj”,@”obj”,@”value”,@”value”,@”key”];

[testArr valueForKeyPath:@”@distinctUnionOfObjects.name”];//数组去重@[@”obj”,@”value”,@”key”]

 

二.判断Array中是否包含某一规则的对象,并返回一个数组:

NSPredicate*filterPredicate = [NSPredicate predicateWithFormat:@”SELF CONTAINS%@”, regex];

并调用:-(NSArray *)filteredArrayUsingPredicate:(NSPredicate *)predicate;方法即可。

 

三.获得一个数组中某些对象除外的数组:

NSPredicate*notPredicate = [NSPredicate predicateWithFormat:@”NOT (SELF in%@)”, arrayFilter2];

且还是要调用-(NSArray *)filteredArrayUsingPredicate:(NSPredicate *)predicate;方法。

 

四.找出某个范围内的对象:

创建如下Predicate(这里可以用到所有的比较操作符):
NSPredicate *pre =[NSPredicate predicateWithFormat:@”self.*** <5″];

并调用:-(BOOL)evaluateWithObject:(id)object;方法。

在这里啰嗦一句,如果只是在数组中查找是否存在对象时用indexOfObject,如果不存在则返回为NSNotFound.

 

五.判断字符串首字母是否为字母。

NSString *regex = @”[A-Za-z]+”;

NSPredicate *predicate = [NSPredicate predicateWithFormat:@”SELF MATCHES %@”, regex];

if ([predicate evaluateWithObject:aString]) { }

 

人已赞赏
iOS文章

iOS NSString、NSData 、Char *之间的转换

2020-6-8 16:19:02

iOS文章

iOS使用instruments来优化你的app

2020-6-8 17:33:02

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索