谓词大揭秘
2015-11-21 22:04
375 查看
谓词由NSPredicate对象来代表,它有三个子类:NSComarisonPredicate,NSCompoundPredicate和NSExpression,虽然程序实际创建的通常是NSPredicate的子类的实例,但实际编程时会直接使用NSPredicate的predicateWithFormat:方法,以一个谓词字符串为参数来创建NSPredicate对象。例子如下:
创建谓词之后,如果谓词中没有占位符参数,即可使用NSPredicate的evaluteWithObject:方法计算谓词的结果,该结果总是一个BOOL值;如果该谓词中有占位符参数,则需要经过如下两步来计算谓词的结果。
1,调用谓词的predicateWithSubstitutionVariables:方法为占位符参数设置参数值。
2,执行谓词的evaluateWithObject:方法计算谓词的返回结果。
提示:
NSPredicate 还提供了一个evaluteWithObject:substitutionVariables:方法,该方法可以同时完成上面两步。该方法既为谓词重点占位符参数设置了参数值,也计算了谓词的返回结果。
在谓词中使用占位符参数
如果需要在谓词表达式中使用变量,则可以考虑在谓词表达式中使用占位符参数,谓词表达式中支持以下两个占位符参数。
1)%K:该占位符用于动态传入属性名。
2)%@:该占位符用于动态设置属性值。
如果在此表达式中使用了占位符参数,则需要在调用predicateWthFormatL方法时为个占位符传入参数值。
除此之外,还可以在谓词表达式中使用动态改变的属性值,类似于环境变量,如下:
上面表达式
谓词表达式语法
group.name like "work" ALL children.age > 12 ANY children.age > 12
创建谓词之后,如果谓词中没有占位符参数,即可使用NSPredicate的evaluteWithObject:方法计算谓词的结果,该结果总是一个BOOL值;如果该谓词中有占位符参数,则需要经过如下两步来计算谓词的结果。
1,调用谓词的predicateWithSubstitutionVariables:方法为占位符参数设置参数值。
2,执行谓词的evaluateWithObject:方法计算谓词的返回结果。
提示:
NSPredicate 还提供了一个evaluteWithObject:substitutionVariables:方法,该方法可以同时完成上面两步。该方法既为谓词重点占位符参数设置了参数值,也计算了谓词的返回结果。
在谓词中使用占位符参数
如果需要在谓词表达式中使用变量,则可以考虑在谓词表达式中使用占位符参数,谓词表达式中支持以下两个占位符参数。
1)%K:该占位符用于动态传入属性名。
2)%@:该占位符用于动态设置属性值。
如果在此表达式中使用了占位符参数,则需要在调用predicateWthFormatL方法时为个占位符传入参数值。
除此之外,还可以在谓词表达式中使用动态改变的属性值,类似于环境变量,如下:
[NSPredicate predicateWithFormat:@"name CONTAINS $SUBSTR"];
上面表达式
$SUBSTR是一个可以动态变化的值,随着程序改变了
$SUBSTR的值,该谓词表达式的比较条件就可以动态的改变。
谓词表达式语法
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 讲解iOS开发中基本的定位功能实现
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- 浅析iOS应用开发中线程间的通信与线程安全问题
- 检测iOS设备是否越狱的方法
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- Android、iOS和Windows Phone中的推送技术详解
- IOS 改变键盘颜色代码
- 举例详解iOS开发过程中的沙盒机制与文件
- Android和IOS的浏览器中检测是否安装某个客户端的方法
- 分享一个iOS下实现基本绘画板功能的简单方法
- javascript实现阻止iOS APP中的链接打开Safari浏览器