iOS-OC-基础-NSPredicate常用方法
NSpredicate 常用方法
// 谓词的条件查询 > 、< 、==、!=
NSPredicate *predicate1 = [NSPredicate predicateWithFormat:@"age > 20"];
NSArray *arr1 = [stuArray filteredArrayUsingPredicate:predicate1];
NSLog(@"arr1 = %@",arr1); //使用表达式
NSPredicate *predicate2 = [NSPredicate predicateWithFormat:@"age > 20 && height > 170"];
NSArray *arr2 = [stuArray filteredArrayUsingPredicate:predicate2];
NSLog(@"arr2 = %@",arr2); // 字符串作为条件要使用单引号‘’,name == 'lisi'
NSPredicate *predicate3 = [NSPredicate predicateWithFormat:@"name == 'lisi'"];
NSArray *arr3 = [stuArray filteredArrayUsingPredicate:predicate3];
NSLog(@"arr3 = %@",arr3); // 使用占位符
NSPredicate *predicate4 = [NSPredicate predicateWithFormat:@"age == %ld",];
NSArray *arr4 = [stuArray filteredArrayUsingPredicate:predicate4];
NSLog(@"arr4 = %@",arr4); // IN {'lisi','wangwu'} 在包含的条件内
NSPredicate *predicate5 = [NSPredicate predicateWithFormat:@"height IN {165,180}"];
NSArray *arr5 = [stuArray filteredArrayUsingPredicate:predicate5];
NSLog(@"arr5 = %@",arr5); //BEGINSWITH 以什么字符串开头
NSPredicate *predicate6 = [NSPredicate predicateWithFormat:@"name BEGINSWITH[c] 'R'"];
NSArray *arr6 = [stuArray filteredArrayUsingPredicate:predicate6];
NSLog(@"arr6 = %@",arr6); // ENDSWITH 以什么字符串结尾
NSPredicate *predicate7 = [NSPredicate predicateWithFormat:@"name ENDSWITH 'e'"];
NSArray *arr7 = [stuArray filteredArrayUsingPredicate:predicate7];
NSLog(@"arr7 = %@",arr7); // CONTAINS 包含某个字符串
NSPredicate *predicate8 = [NSPredicate predicateWithFormat:@"name CONTAINS 'a'"];
NSArray *arr8 = [stuArray filteredArrayUsingPredicate:predicate8];
NSLog(@"arr8 = %@",arr8); /* LIKE: 1、 LIKE '*a*' 包含某个字符串
2、 LIKE 'j*' 以某个字符串开头
3、 LIKE '*e 以某个字符串结尾
4、 LIKE '?a*' 第二个字符串是 a 的
5、 LIKE[c] 'r*' [c] 表示忽略大小写 *: 星号表示任意个字符位,?问号,表示一个字符位,[c] 表示忽略大小写 */ NSPredicate *predicate9 = [NSPredicate predicateWithFormat:@"name LIKE '*a*'"];
NSArray *arr9 = [stuArray filteredArrayUsingPredicate:predicate9];
NSLog(@"arr9 = %@",arr9); NSPredicate *predicate10 = [NSPredicate predicateWithFormat:@"name LIKE[c] 'r*'"];
NSArray *arr10 = [stuArray filteredArrayUsingPredicate:predicate10];
NSLog(@"arr10 = %@",arr10); NSPredicate *predicate11 = [NSPredicate predicateWithFormat:@"name LIKE '*e'"];
NSArray *arr11 = [stuArray filteredArrayUsingPredicate:predicate11];
NSLog(@"arr11 = %@",arr11); NSPredicate *predicate12 = [NSPredicate predicateWithFormat:@"name LIKE '?a*'"];
NSArray *arr12 = [stuArray filteredArrayUsingPredicate:predicate12];
NSLog(@"arr12 = %@",arr12); // NSMutableArray 使用 filterUsingPredicate,不会返回一个新数组,而是直接覆盖原来的可变数组
NSPredicate *predicate13 = [NSPredicate predicateWithFormat:@"name LIKE '?a*'"];
[stuArray filterUsingPredicate:predicate13];
NSLog(@"stuArray = %@",stuArray);
本文GitHub地址https://github.com/zhangkiwi/iOS_SN_NSPredicate
iOS-OC-基础-NSPredicate常用方法的更多相关文章
- iOS 阶段学习第11天笔记(OC基础知识)
iOS学习(OC语言)知识点整理 一.OC基础知识 1)#import 用于导入头文件,预处理阶段加载引用,只加载一次. 2)OC 依赖于Foundation框架下的头文件Foundation.h, ...
- iOS开发OC基础:Xcode中常见英文总结,OC常见英文错误
在开发的过程中难免会遇到很多的错误,可是当看到系统给出的英文时,又不知道是什么意思.所以这篇文章总结了Xcode中常见的一些英文单词及词组,可以帮助初学的人快速了解给出的提示.多练习,就肯定能基本掌握 ...
- iOS 面试基础题目
转载: iOS 面试基础题目 题目来自博客:面试百度的记录,有些问题我能回答一下,不能回答的或有更好的回答我放个相关链接供参考. 1面 Objective C runtime library:Obje ...
- OC基础笔记目录
OC基础(1) Objective-C简介 OC和C对比 第一个OC程序 面向对象思想 OC基础(2) 类与对象 类的设计 第一个OC类 对象方法的声明和实现 类方法的声明和实现 OC基础(3) 对象 ...
- ios+oc面试题
ios+oc面试题 浅复制和深复制的区别?//浅拷贝和深拷贝答案:浅层复制(copy):只复制指向对象的指针,而不复制引用对象本身.//通过对象的指针来访问这个对象深层复制(mutableCo ...
- OC基础16:复制对象
"OC基础"这个分类的文章是我在自学Stephen G.Kochan的<Objective-C程序设计第6版>过程中的笔记. 1.浅复制即是指针赋值,复制对象的修改会影 ...
- OC基础8:分类和协议
"OC基础"这个分类的文章是我在自学Stephen G.Kochan的<Objective-C程序设计第6版>过程中的笔记. 1.关于分类(category): (1) ...
- 【IOS学习基础】NSObject.h学习
一.<NSObject>协议和代理模式 1.在NSObject.h头文件中,我们可以看到 // NSObject类是默认遵守<NSObject>协议的 @interface N ...
- OC基础回想(十二)协议
在OC基础(十一)中我们讨论了类别和非正式协议的奇异之处.在使用非正式协议时.能够仅仅实现你想要获得响应的方法.也不必在对象中声明不论什么内容来表示该对象可用作托付对象. 全部这些任务能够用最少的代码 ...
- 一些iOS面试基础题总结
一些iOS面试基础题总结 目录 多线程 AutoLayout objc_msgSend Runtime 消息转发 Category NSObject 与 objc_class Runloop Auto ...
随机推荐
- C#读取USB的一些相关信息
在USB\VID_05A9&PID_2800\5&1BFE1C47&0&8里面,USB代表设备类型,5&1BFE1C47&0&8代表设备连接位置 ...
- delete语句与reference约束 FK_subplan_job_id冲突问题,导致job无法删除解决办法
在SQL Server 2008上删除已运行维护计划后,维护计划job没有自动删除掉,手工再删除维护计划job,提示删除失败. 错误现象:delete 语句与 reference 约束"F ...
- python进行base64编解码
[转] 直接上代码 import base64 fin = open(r"D:\2.zip", "rb") fout = open(r"D:\2.x. ...
- Apache配置多个监听端口和不同的网站目录的简单方法(转)
转自http://www.waaqi.com/archives/707.html 由于开发的多项目,每个项目又要独立,要用根目录地址. 所以这时候我们需要配置多个不同目录的Apache,如果是外部网可 ...
- 视差滚动(Parallax Scrolling)效果的原理与实现
视差滚动(Parallax Scrolling)效果的原理与实现1.视差滚动效果的主要特点: 1)直观的设计,快速的响应速度,更合适运用于单页面 2)差异滚动 分层视差 页面上很多的 ...
- 前端jquery实现点击图片弹出大图层(且滚动鼠标滑轮图片缩放)
<img src="{$vo.photo}" height="50px" onclick="showdiv({$i});"> & ...
- javascript if 和else 语句练习
1.标准体重://男士体重=身高-100±3<br />//女士体重=身高-110±3<br />//输入性别.身高.体重,查看体重是否标准. <script type= ...
- SpringMVC整合极光推送报错ClassNotFound
问题: 今天在做后台和极光整合的过程中,将极光部分代码整合到Dao层,在启动项目的过程中总是报错,classNotFund cn/jpush/api/push/xxxx 极光官方文档: http:// ...
- SEO教程:向百度要流量 第一季
首先祝贺你:当你看到这篇文章时,你已经站在一条通往SEO达人捷径的路口. 笔者也是今年年初才成为SEOer的一员,在做SEO的过程中,有不少自己独特的心得体会,所以一直酝酿着写一个SEO系列的文章,将 ...
- openFileDialog与saveFileDialog的使用
private void btnOpen_Click(object sender, EventArgs e) { if (openFileDialog1.ShowDialog() == DialogR ...