谓词提供可可指定查询的通用方法。谓词系统能够处理大量的域,包括核心数据和聚焦。本文档描述谓词在一般情况下,它们的使用,它们的语法,和它们的局限性。
一眼望过去
在可可,一个谓语是计算结果为布尔值(true或false)一个逻辑语句。有两种类型谓词 的,被称为比较和化合物:
一个比较谓词比较两个表达式使用操作符。表达式被称为左手侧和谓词的右手侧(在中间的操作者)。比较谓词返回调用操作与评估表达式的结果的结果。
一个复合谓语比较评估其他两个以上的谓词的结果,或否定另一个谓词。
可可支持多种类型的谓语,其中包括以下内容:
简单的比较,如等级== 7或的firstName像'马克'
案例或变音符号不敏感的查询,如名称中包含[CD]“雪铁龙”
逻辑运算,诸如(名字beginswith“M”)及(lastName的像'阿德利')
您还可以创建谓词的关系,如group.name匹配'的工作。*“,所有children.age>12,和任何children.age> 12-和进行诸如@ sum.items.price<1000。
可可谓词提供的方式应是独立于用来容纳被搜索的数据的商店编码的查询的装置。您可以使用谓词来表示用于约束集通过Spotlight和核心数据检索对象的逻辑条件,并在内存中过滤的对象。
您可以使用谓词与任何类的对象,而是一个类必须是键-值编码兼容您希望在谓语使用的键。
谓词类
可可提供NSPredicate和它的两个子类,NSComparisonPredicate和NSCompoundPredicate。
该NSPredicate类提供的方法来评价一个谓语,并创建一个谓语从字符串(如的firstName像'马克')。当您从一个字符串创建一个谓语,NSPredicate为您创建相应的谓词和表达情况。在某些情况下,你想创建比较或复合谓词自己,在这种情况下,你可以使用NSComparisonPredicate和NSCompoundPredicate类。
在可可谓词表达式是由的实例表示NSExpression类。最简单谓词表达式表示为恒定值。频繁,不过,使用该检索,在上游目前正在评估所述对象的关键路径的值的表达式。还可以创建表示在谓词目前正在评估的对象,以用作占位符的变量,或返回一个阵列上执行操作的结果的表示。
网友评论