&iOS

NSPredicate

2019-02-15  本文已影响0人  小僧有礼了

用于定义逻辑条件约束,是对一个获取内存过滤搜索的逻辑条件(意思:是一个过滤,不符合条件的都滚开)

基本语法

比较运算符 (=、==、=>、<=、!= … 谓词中=和==是相同的意思都是判断,而没有赋值这一说)

NSPredicate *predicate = [NSPredicate predicateWithFormat:@“SELF = 123”];
[predicate evaluateWithObject:testNum]; 返回YES或NO
BETWEEN:表达式必须满足{下限,上限},大于或等于下限,并小于或等于上限
    SELF BETWEEN {100,200}

逻辑运算符 (AND、&&、OR、||、NOT、!)

SELF > 2 && SELF < 8

字符串比较运算符([c]忽略大小写[d]忽略重音符号[cd]忽略大小写和重音符号)

BEGINSWITH:检查字符串是否以指定的字符串开头
    SELF BEGINSWITH “a”
    SELF BEGINSWITH[cd] “café”
ENDSWITH:检查字符串是否以指定的字符串结尾
    CONTAINS:检查字符串是否包含指定的字符串
    LIKE:检查字符串是否匹配指定字符串模板
        SELF LIKE ‘ab’ (包含)
        SELF LIKE ‘?ab’ (第2、3个字符为ab)
    MATCHES:检查字串串是否匹配指定的正则表达式(正则表达式的执行效率最低,但功能强大,最为常用)

集合运算符

    ANY、SOME:任意一个元素满足条件,就返回YES
    ALL:所有元素都满足条件,返回YES
    NONE:没有任何元素满足条件返回YES
    IN:等价SQL中的IN运算符,当左边表达式或值出现在右边,返回YES
    数组过滤掉另外一个数组的所有数据
            NSPredicate *predicate = [NSPredicate predicateWithFormat:@“NOT(SELF IN %@)”,array];
            [source filteredArrayUsingPredicate:predicate];
上一篇下一篇

猜你喜欢

热点阅读