NSPredicate类,指定过滤器的条件---董鑫
/*
比较和逻辑运算符
就像前面的例子中使用了==操作符,NSPredicate还支持>, >=, <, <=, !=, <>,还支持AND, OR, NOT(或写成C语言样式&&, ||, ! ),其中AND,OR,NOT还是不区分大小写的
*/ NSArray *array = [NSArray array]; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"age <= 28"];
for (Student *student in array) {
//标示指定的对象是否满足谓语条件
if ([predicate evaluateWithObject:student]) {
NSLog(@"person name : %@",student.name);
}
} //返回一个符合谓语条件的数组
NSArray *newArray = [array filteredArrayUsingPredicate:predicate];
for (Student *student in newArray) {
NSLog(@"person name : %@",student.name);
} /*
关键字 IN,BEGINSWITH,ENDSWITH,CONTAINS,LIKE,大小写都可以.添加的限制性字符串一定要添加''
*/
Student *student = [[Student alloc]init]; NSPredicate *preIN = [NSPredicate predicateWithFormat:@"student.name IN {'rose','bruse'}"];
NSArray *student1 = [array filteredArrayUsingPredicate:preIN];
//以**开始beginswith
NSPredicate *preBeginsWith = [NSPredicate predicateWithFormat:@"student.name beginswith '滚犊子'"];
NSArray *student2 = [array filteredArrayUsingPredicate:preBeginsWith];
//以**结尾endswith
NSPredicate *preEndsWith = [NSPredicate predicateWithFormat:@"student.name endswith '滚犊子'"];
NSArray *student3 = [array filteredArrayUsingPredicate:preEndsWith];
//包含contains
NSPredicate *preContains = [NSPredicate predicateWithFormat:@"student.name contains '滚犊子'"];
NSArray *student4 = [array filteredArrayUsingPredicate:preContains];
//模糊查询like
NSPredicate *preLike = [NSPredicate predicateWithFormat:@"student.name like '*%@*'",@"滚犊子"];
NSArray *student5 = [array filteredArrayUsingPredicate:preLike];
NSPredicate类,指定过滤器的条件---董鑫的更多相关文章
- 10)drf 过滤器(条件查询 排序 ) 分页器
一.群查接口各种筛选组件 数据准备 models.py class Car(models.Model): name = models.CharField(max_length=16, unique=T ...
- java基础知识回顾之javaIO类--File类应用:过滤器接口FilenameFilter和FileFilter
FilenameFilter和FileFilter都是用来过滤文件,例如过滤,以.jpg或者.java结尾的文件,通过看他们的源码:通过使用File类中String[] list(FilenameFi ...
- Junit 注解 类加载器 .动态代理 jdbc 连接池 DButils 事务 Arraylist Linklist hashset 异常 哈希表的数据结构,存储过程 Map Object String Stringbufere File类 文件过滤器_原理分析 flush方法和close方法 序列号冲突问题
Junit 注解 3).其它注意事项: 1).@Test运行的方法,不能有形参: 2).@Test运行的方法,不能有返回值: 3).@Test运行的方法,不能是静态方法: 4).在一个类中,可以同时定 ...
- 一个类搞定SQL条件映射解析,实现轻量简单实用ORM功能
个人觉得轻简级的ORM既要支持强类型编码,又要有执行效率,还要通俗易懂给开发者友好提示,结合Expression可轻松定制自己所需要功能. Orm成品开源项目地址https://github.com/ ...
- SpringCloud启动类指定扫描包路径
//如果这个启动类所在的包路径隐藏的很深,则需要指定扫描包.否则默认扫描启动类所在的子包路径下 @SpringBootApplication(scanBasePackages="com.jo ...
- PredicateBuilder类(linq多条件组合查询)
PredicateBuilder类如下: public static class PredicateBuilder { /// <summary> /// 机关函数应用True时:单个AN ...
- (转载)solr实现满足指定距离范围条件的搜索
配置schema.xml <?xml version="1.0" encoding="UTF-8" ?> <schema name=" ...
- File类 文件过滤器
创建过滤器 package cn.zmh.File; import java.io.File; import java.io.FileFilter; // 实现FileFilter类的功能 publi ...
- Java基础(二十八)Java IO(5)RandomAccessFile类与过滤器流(Filter Stream)
一.RandomAccessFile类 使用RandomAccessFile类可以读取任意位置数据的文件. 1.构造方法 RandomAccessFile(String name, String mo ...
随机推荐
- 【MySQL作业】连接查询——美和易思内连接查询应用习题
点击打开所使用到的数据库>>> 1.使用内连接获取客户"王传华"所有的订单信息和客户信息. 使用内连接获取客户"王传华"所有的订单信息和客户信 ...
- .NET 云原生架构师训练营(设计原则&&设计模式)--学习笔记
目录 设计原则 设计模式 设计原则 DRY (Don't repeat yourself 不要重复) KISS (Keep it stupid simple 简单到傻子都能看懂) YAGNI (You ...
- C# .net 环境下使用rabbitmq消息队列
消息队列的地位越来越重要,几乎是面试的必问问题了,不会使用几种消息队列都显得尴尬,正好本文使用C#来带你认识rabbitmq消息队列 首先,我们要安装rabbitmq,当然,如果有现成的,也可以使用, ...
- GDB调试-从入门到实践
你好,我是雨乐! 在上篇文章中,我们分析了线上coredump产生的原因,其中用到了coredump分析工具gdb,这几天一直有读者在问,能不能写一篇关于gdb调试方面的文章,今天借助此文,分享一些工 ...
- 使用VUE组件创建SpreadJS自定义单元格(一)
作为近五年都冲在热门框架排行榜首的Vue,大家一定会学到的一部分就是组件的使用.前端开发的模块化,可以让代码逻辑更加简单清晰,项目的扩展性大大加强.对于Vue而言,模块化的体现集中在组件之上,以组件为 ...
- 在安装pdfplumber时报错 Microsoft Visual C++ 14.0 is required.
在安装pdfplumber时报下列错误: 解决方法: 更新pip ,因为pip 版本太旧 来自为知笔记(Wiz)
- nginx - win系统启动一闪而过 ,服务没有启动成功
这种现象是因为配置文件里配置的服务监听端口被占了
- 【PTA】6-2 读文章(*) (31 分)
请编写函数,从文件中读出文章,将其输出到屏幕上. 函数原型 void ReadArticle(FILE *f); 说明:参数 f 为文件指针.函数读出 f 所指示文件中的文章,将其输出到屏幕上. 裁判 ...
- day 10 删除空白字符
(1).有以下程序(大写变小写) (2).有以下程序,在[1]填写程序,使得程序正确运行. 分析:(*p)(int,int)是一个函数指针(一个指针[*p]指向的对象是一个函数),函数的形参是(int ...
- 新设备关联Gitlab
新设备关联Gitlab 1:创建SSH Key.在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步.如果 ...