iOS NSPredicate(谓词)
来源:互联网 发布:覆盖cookie变量php 编辑:程序博客网 时间:2024/06/03 07:09
Cocoa 提供了NSPredicate 用于指定过滤条件,定义一个逻辑条件,通过该条件可执行搜索或过滤操作。
谓词是指在计算机中表示计算真假值的函数,它使用起来有点儿像SQL 的查询条件,主要用于从集合中分拣出
符合条件的对象,也可以用于字符串的正则匹配。
创建步骤:
1.创建谓词,并放置过滤条件
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"age<%d",30];
2.对数组进行谓词判断,并返回数组
NSArray *array = [persons filteredArrayUsingPredicate:predicate];
过滤条件描述如下:
(1)数值判断
=、==:判断是否等于某个值
>=、=>:判断是否大于等于某个值
<=、=<:判断是否小于等于某个值
>:判断是否大于某个值
<:判断是否⼩于某个值
(2)其他判断条件
AND、&&:逻辑与,要求两个表达式的值都为YES时,结果才为YES
OR、||:逻辑或,要求任何一个表达式的值为YES时,结果才为YES
NOT、!:逻辑非,用于对原有表达式的结果取反
BEGINSWITH:检查某个字符串是否以指定的子串开头
ENDSWITH:检查某个字符串是否以指定的字串结尾
CONTAINS:检查某个字符串是否包含指定的⼦串
LIKE:相当于模糊查询某个字符串,LIKE后⾯面可使⽤用字符串模板,该字符串模板允许使⽤用*和?两个通配符,其中*代表任意多个字符,?代表⼀个字符
IN{}:检测某个字符串是否是括号内元素
判断条件实例:
BEGINSWITH、ENDSWITH分别表示是否以某字符串开头、结尾:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@”pid BETWEEN {1,5}”];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@”name BEGINSWITH ‘He’”];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@”name ENDSWITH ‘He’”];
IN,CONTAINS 分别代表是否是括号内的元素,是否包含某字符串
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name CONTAINS 'a'"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name IN {'Name1','Name2'}"];
LIKE:相当于模糊查询某个字符串,*代表任意多个字符,?代表⼀一个字符
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name like '*s*'"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name like '?s'"];
判断使用:
NSArray提供了如下⽅方法使⽤用谓词来过滤数组:
- (NSArray*)filteredArrayUsingPredicate:(NSPredicate *)predicate:使⽤用指定的谓词过滤NSArray数组,返回该数组中符合谓词条件的元素组成新的数组
NSSet提供了如下⽅方法使⽤用谓词来过滤集合:
-(NSSet*)filteredSetUsingPredicate:(NSPredicate *)predicate:使⽤用指定的谓词过滤NSSet集合,返回该集合中符合谓词条件的元素组成新的集合
NSMutableArray提供了如下⽅方法使⽤用谓词来过滤数组:
-(void)filterUsingPredicate:(NSPredicate *)predicate:使⽤用指定的谓词过滤NSMutableArray数组,删除该数组中不符合条件的元素•NSMutableSet提供了如下⽅方法使⽤用谓词来过滤集合:
-(void)filterUsingPredicate:(NSPredicate *)predicate:使⽤用指定的谓词过滤NSMutableSet集合,删除该集合中不符合条件的元素
0 0
- IOS谓词--NSPredicate
- iOS 谓词查询NSPredicate
- IOS NSPredicate 谓词
- IOS谓词--NSPredicate
- iOS NSPredicate谓词
- IOS谓词--NSPredicate
- IOS谓词--NSPredicate
- iOS谓词使用--NSPredicate
- iOS 谓词 NSPredicate 详解
- iOS NSPredicate(谓词)
- ios NSPredicate 谓词过滤
- IOS谓词--NSPredicate 和array
- [iOS学习] 谓词NSPredicate使用
- [IOS开发]搜索用谓词NSPredicate
- [IOS开发]搜索用谓词NSPredicate
- [IOS开发]搜索用谓词NSPredicate
- [IOS开发]搜索用谓词NSPredicate
- iOS---NSPredicate谓词的用法 数组过滤
- Spring Data JPA 全局DAO的扩展
- 确保对象的唯一性——单例模式 (三):饿汉式单例与懒汉式单例
- linuxc时间函数
- mysql 分区技术
- 小问题
- iOS NSPredicate(谓词)
- JAVA IO 详解
- Python进阶01-05
- C++函数重载和函数覆盖的区别
- leetcode Count of Range Sum
- Django使用自定义认证方式
- android中一些特殊字符(如:←↑→↓等箭头符号)的Unicode码值
- 韩顺平java从入门到精通第59讲,建立数据库代码
- errors in crontab file,can't install