NSPredicate

NSPredicate谓词用于快速过滤数据。

初始化的方式如下所示

NSString *attributeName  = @"firstName";
NSString *attributeValue = @"Adam";
NSPredicate *predicate   = [NSPredicate predicateWithFormat:@"%K like %@",
        attributeName, attributeValue];

1 Parser Basics

  1. %@是对值为字符串,数字或者日期的对象的替换值。
  2. %K是key path的替换值。

2 Basic Comparisons

  1. =, ==:左边的表达式和右边的表达式相等。
  2. >=, =>:左边的表达式大于或者等于右边的表达式。
  3. <=, =<:左边的表达式小于等于右边的表达式。
  4. >:左边的表达式大于右边的表达式。
  5. <:左边的表达式小于右边的表达式。
  6. !=, <>:左边的表达式不等于右边的表达式。
  7. BETWEEN:左边的表达式等于右边的表达式的值或者介于它们之间。右边是一个有两个指定上限和下限的数值的数列(指定顺序的数列)。比如,1 BETWEEN { 0 , 33 },或者INPUT BETWEEN {LOWER, $UPPER }。

3 Boolean Value Predicates

  1. TRUEPREDICATE:总是评估为真。
  2. FALSEPREDICATE:总是评估为假。

4 Basic Compound Predicates

  1. AND, &&:逻辑与。
  2. OR, ||:逻辑或。
  3. NOT, !:逻辑非。

5 String Comparisons

字符串比较在默认的情况下是区分大小写和音调的。你可以在方括号中用关键字符c和d来修改操作符以相应的指定不区分大小写和变音符号,比如firstname BEGINSWITH[cd] $FIRST_NAME。

  1. BEGINSWITH:左边的表达式以右边的表达式作为开始。
  2. CONTAINS:左边的表达式包含右边的表达式。
  3. ENDSWITH:左边的表达式以右边的表达式作为结束。
  4. LIKE:左边的表达式等于右边的表达式:?和可作为通配符,其中?匹配1个字符,匹配0个或者多个字符。
  5. MATCHES:左边的表达式根据ICU v3(更多内容请查看ICU User Guide for Regular Expressions)的regex风格比较,等于右边的表达式。

6 Aggregate Operations

  1. ANY,SOME:指定下列表达式中的任意元素。比如,ANY children.age < 18。
  2. ALL:指定下列表达式中的所有元素。比如,ALL children.age < 18。
  3. NONE:指定下列表达式中没有的元素。比如,NONE children.age < 18。它在逻辑上等于NOT (ANY …)。
  4. IN:等于SQL的IN操作,左边的表达必须出现在右边指定的集合中。比如,name IN { ‘Ben’, ‘Melissa’, ‘Nick’ }。
  5. array[index]:指定数组中特定索引处的元素。
  6. array[FIRST]:指定数组中的第一个元素。
  7. array[LAST]:指定数组中的最后一个元素。
  8. array[SIZE]:指定数组的大小。

 


Appendix

Predicate Programming Guide

Revision History

时间描述
2016-10-26博文完成

CSDN:http://blog.csdn.net/y550918116j

GitHub:https://github.com/937447974

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值