iOS知识梳理:谓词NSPredicate

2017-09-19  本文已影响20人  大布溜

NSPredicate类是用来定义逻辑条件约束的获取或内存中的过滤搜索.
说白了就是一个过滤条件,比如,"小于4","大于5"之类的.

首先是一个例子,,,在一个装了很多Person类实例的数组里,用谓词来过滤年龄小于30的

//年龄小于30  
//定义谓词对象,谓词对象中包含了过滤条件  
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"age<%d",30];  
//使用谓词条件过滤数组中的元素,过滤之后返回查询的结果  
NSArray *array = [persons filteredArrayUsingPredicate:predicate];  

常用的一些Format的写法:

//名字等于1且age大于40
@"name = '1' && age>40"

//in包含
@"self.name IN {'1','2','3'} || self.age IN{30,40}"

//name以a开头
@"name BEGINSWITH 'a'"
//name以ba结尾
@"name ENDSWITH 'ba'"

//name包含字符a
@"name CONTAINS 'a'"

//*表示多个字符,只要有s就可以
@"name like '*s*'"
//?表示一个字符,那么第二个字符必须是s
@"name like '?s'"

更加精细的总结.
1.比较运算符

2.逻辑运算符

3.字符串比较运算符

4.集合运算

5.直接量

6.保留字
下列单词都是保留字(不论大小写)
AND、OR、IN、NOT、ALL、ANY、SOME、NONE、LIKE、CASEINSENSITIVE、CI、MATCHES、CONTAINS、BEGINSWITH、ENDSWITH、BETWEEN、NULL、NIL、SELF、TRUE、YES、FALSE、NO、FIRST、LAST、SIZE、ANYKEY、SUBQUERY、CAST、TRUEPREDICATE、FALSEPREDICATE

实际使用中.谓词经常配合正则表达式来做一些比如判断电话号码,或是邮件地址等等的操作...之后再来说正则表达式吧...

上一篇下一篇

猜你喜欢

热点阅读