NSPredicate--谓词(is)
技术博客http://www.cnblogs.com/ChenYilong/
新浪微博http://weibo.com/luohanchenyilong 


NSPredicate
技术博客http://www.cnblogs.com/ChenYilong/新浪微博http://weibo.com/luohanchenyilong

NSPredicate--谓词(is)
• 使用步骤:- 1. 定义NSPredicate对象并指定条件-2. 调用谓词的evaluateWithObject方法判断指定条件是否满足
• 示例:NSPredicate *predicate = [NSPredicatepredicateWithFormat:@"self
CONTAINS '1'"];
NSString *text = @"1234";
NSLog(@"%d", [predicate evaluateWithObject:text]);

谓词示例(1)--传统方法
• 1. 创建Person的对象数组
• 2. 编写常规的查询判断姓名和年龄的过滤方法NSMutableArray *result = [NSMutableArrayarrayWithCapacity:personList.count];
for (NSInteger i = 0; i < personList.count; i++) { Person*person = personList[i];
// 用户年龄小于5 同时用户姓名中包含“1”字符串 if(person.age < 5 && NSNotFound != [person.namerangeOfString:@"1"].location) {
[result addObject:person]; }
}
return result;

谓词示例(2)--谓词方法 NSPredicate*predicate = [NSPredicatepredicateWithFormat:@"name
CONTAINS '1' && %K BETWEEN {%d, %d}",@"age", 5, 15];
NSArray *result = [personListfilteredArrayUsingPredicate:predicate];

谓词的条件指令(1)--逻辑指令
• &&!
• ||!
• !!
• <!
• <=!
• ==!
• >!
• >=!
• BETWEEN {}!

谓词的条件指令(2)--字符串匹配
• BEGANWITH:以指定字符开始• ENDSWITH:以指定字符结束• CONTAINS:包含指定字符,可使用修饰符
- c 不区分大小写
- d 不区分注音符号 • LIKE:使用通配符匹配
- ? 一个字符- * 0个或多个字符

提示
• 1.谓词中的匹配指令关键字通常使用大写字母• 2.谓词中可以使用格式字符串• 3.如果通过对象的keypath指定匹配条件,需要使用%K

Thanks!

技术博客http://www.cnblogs.com/ChenYilong/
新浪微博http://weibo.com/luohanchenyilong
NSPredicate--谓词(is)的更多相关文章
- NSPredicate谓词
NSPredicate——谓词(is) 作用:判断条件表达式的求值返回真或假的过程 使用步骤: . 定义NSPredicate对象并指定条件 . 调用谓词的evaluateWithObject方法判断 ...
- NSPredicate,谓词
原文地址:http://blog.csdn.net/holydancer/article/details/7380799 在语言上,谓语,谓词是用来判断的,比如“我是程序猿”中的是,就是表判断的谓语, ...
- objective-c中使用cocoa的NSPredicate,谓词(十四)
holydancer原创,如需转载,请在显要位置注明: 转自holydancer的CSDN专栏,原文地址:http://blog.csdn.net/holydancer/article/details ...
- IOS开发之NSPredicate谓词的用法
编程的人员不管是上过大学还是从培训机构出来的或做后台的.前端的都应该SQL语句有所了解,我们知道,在SQL语句当中 where 条件表达式可以对二维关系表的数据做条件筛选.微软的C# .net中也实现 ...
- NSPredicate 谓词总结 数组过滤 模糊匹配
NSPredicate 用于指定过滤条件,主要用于从集合中分拣出符合条件的对象,也可以用于字符串的正则匹配. NSPredicate常用方法介绍 1.创建NSPredicate(相当于创建一个过滤条件 ...
- NSPredicate谓词查询
Cocoa提供了一个类NSPredicate类,该类主要用于指定过滤器的条件,该对象可以准确的描述所需条件,对每个对象通过谓词进行筛选,判断是否与条件相匹配.谓词表示计算真值或假值的函数. NSPre ...
- NSPredicate谓词的用法
在IOS开发Cocoa框架中提供了一个功能强大的类NSPredicate,下面来讨论一下它的强大之处在哪...NSPredicate继承自NSObject,它有两个派生的子类• NSCompariso ...
- NSPredicate
NSPredicate 1. 正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串.通常被用来检索.替换那些符合某个模式的文本. 2. iOS中正则使用 有三种(NSPredicate, ...
- NSPredicate的使用
简述 NSPredicate谓词条件过滤器,一般用于过滤数组数据,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取. 常用函数 创建谓词 + (NSPredicate *)predic ...
- NSPredicate 的使用(持续更新)
NSPredicate 谓词工具一般用于过滤数组数据,也可用来过滤CoreData查询出的数据. 1). 支持keypath 2). 支持正则表达式 在使用之前先新建3个类 Teacher Info ...
随机推荐
- Java JVM多线程
- PAT 甲级 1054 The Dominant Color
https://pintia.cn/problem-sets/994805342720868352/problems/994805422639136768 Behind the scenes in t ...
- HTML5资源站
前端里:http://www.yyyweb.com/ http://www.cnblogs.com/html5tricks/p/3925844.html
- 树形结构的数据库表Schema设计-基于左右值编码
树形结构的数据库表Schema设计 程序设计过程中,我们常常用树形结构来表征某些数据的关联关系,如企业上下级部门.栏目结构.商品分类等等,通常而言,这些树状结构需要借助于数据库完 成持久化.然而目前的 ...
- MySQL 分组排序问题
SQL好久不写了,有些生疏了,一个分组排序问题想了快半天,整理下. 学生表 CREATE TABLE `t_student` ( `id` bigint(20) NOT NULL AUTO_INCRE ...
- 第186天:js深入理解构造函数和原型对象
1.在典型的oop的语言中,如java,都存在类的概念,类就是对象的模板,对象就是类的实例.但在js中不存在类的概念,js不是基于类,而是通过构造函数(constructor)和原型链(propoty ...
- [二十]SpringBoot 之 (多)文件上传
(1)新建maven Java project 新建一个名称为spring-boot-fileuploadmaven java项目 (2)在pom.xml加入相应依赖: <project xml ...
- C++解析(23):多态与C++对象模型
0.目录 1.多态 2.C++对象模型 2.1 使用C语言实现封装 3.继承对象模型 4.多态对象模型 4.1 使用C语言实现多态 5.小结 1.多态 面向对象中期望的行为: 根据实际的对象类型判断如 ...
- Linux内核设计第二周学习总结 完成一个简单的时间片轮转多道程序内核代码
陈巧然 原创作品 转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.使用实验楼的虚拟机 ...
- linux 递归删除目录文件
比如删.svn文件 >find . -name ".svn" | xargs -exec rm -rf