OC中的谓词



谓语:
就是英语中的am,is,are,用来做判断用的

NSPredicate类中的方法:
+ (NSPredicate*)predicateWithBlock:(BOOL (^)(id evaluatedObject, NSDictionary *bindings))block; 
+ (NSPredicate *)predicateWithFormat:(NSString *)predicateFormat, ...;
- (BOOL)evaluateWithObject:(id)object;

NSArray (NSPredicateSupport)分类中的方法:
- (NSArray *)filteredArrayUsingPredicate:(NSPredicate *)predicate;

NSMutableArray (NSPredicateSupport)分类中的方法:
- (void)filterUsingPredicate:(NSPredicate *)predicate;

NSSet (NSPredicateSupport)分类中的方法:
- (NSSet *)filteredSetUsingPredicate:(NSPredicate *)predicate;

NSMutableSet (NSPredicateSupport)分类中的方法:
- (void)filterUsingPredicate:(NSPredicate *)predicate;

谓词中的键路径:
1谓词中一般使用对象的键路径,作为判断的依据,并且使用%K作为键路径的占位符.
2谓词中的键路径的功能与用法,与KVC中的键路径的功能与用法,基本一致.

谓词中的逻辑指令:
&&,||,!,
<,<=,==,>,>=,
BETWEEN { , }

谓词中的字符串指令:
格式字符串(支持)
正则表达式(支持)
BEGANWITH:以指定字符开始
ENDSWITH:以指定字符结束
CONTAINS:包含指定字符,可使用修饰符
    [c] 不区分大小写
    [d] 不区分注音符号
LIKE:使用通配符匹配
    ? 一个字符
    * 0个或多个字符

举例一:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF CONTAINS[cd] 'aa' "];
int ret = [predicate evaluateWithObject:@"AA"];

举例二:
NSArray persons = @[person1,person2,person3];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name CONTAINS 'm' && %K BETWEEN{%d,%d}",@"age",20,30];
NSArray *ret = [persons filteredArrayUsingPredicate:predicate];



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值