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常用方法的更多相关文章

  1. iOS 阶段学习第11天笔记(OC基础知识)

    iOS学习(OC语言)知识点整理 一.OC基础知识 1)#import  用于导入头文件,预处理阶段加载引用,只加载一次. 2)OC 依赖于Foundation框架下的头文件Foundation.h, ...

  2. iOS开发OC基础:Xcode中常见英文总结,OC常见英文错误

    在开发的过程中难免会遇到很多的错误,可是当看到系统给出的英文时,又不知道是什么意思.所以这篇文章总结了Xcode中常见的一些英文单词及词组,可以帮助初学的人快速了解给出的提示.多练习,就肯定能基本掌握 ...

  3. iOS 面试基础题目

    转载: iOS 面试基础题目 题目来自博客:面试百度的记录,有些问题我能回答一下,不能回答的或有更好的回答我放个相关链接供参考. 1面 Objective C runtime library:Obje ...

  4. OC基础笔记目录

    OC基础(1) Objective-C简介 OC和C对比 第一个OC程序 面向对象思想 OC基础(2) 类与对象 类的设计 第一个OC类 对象方法的声明和实现 类方法的声明和实现 OC基础(3) 对象 ...

  5. ios+oc面试题

    ios+oc面试题     浅复制和深复制的区别?//浅拷贝和深拷贝答案:浅层复制(copy):只复制指向对象的指针,而不复制引用对象本身.//通过对象的指针来访问这个对象深层复制(mutableCo ...

  6. OC基础16:复制对象

    "OC基础"这个分类的文章是我在自学Stephen G.Kochan的<Objective-C程序设计第6版>过程中的笔记. 1.浅复制即是指针赋值,复制对象的修改会影 ...

  7. OC基础8:分类和协议

    "OC基础"这个分类的文章是我在自学Stephen G.Kochan的<Objective-C程序设计第6版>过程中的笔记. 1.关于分类(category): (1) ...

  8. 【IOS学习基础】NSObject.h学习

    一.<NSObject>协议和代理模式 1.在NSObject.h头文件中,我们可以看到 // NSObject类是默认遵守<NSObject>协议的 @interface N ...

  9. OC基础回想(十二)协议

    在OC基础(十一)中我们讨论了类别和非正式协议的奇异之处.在使用非正式协议时.能够仅仅实现你想要获得响应的方法.也不必在对象中声明不论什么内容来表示该对象可用作托付对象. 全部这些任务能够用最少的代码 ...

  10. 一些iOS面试基础题总结

    一些iOS面试基础题总结 目录 多线程 AutoLayout objc_msgSend Runtime 消息转发 Category NSObject 与 objc_class Runloop Auto ...

随机推荐

  1. 轻量级的中文分词工具包 - IK Analyzer

    IK Analyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包.从2006年12月推出1.0版开始, IKAnalyzer已经推出了4个大版本.最初,它是以开源项目Luence为应用 ...

  2. Qt添加窗口背景图片、Label图片显示、、Label文字显示

    一.添加窗口背景图片 重写MainWindow绘制事件 void MainWindow::paintEvent(QPaintEvent *event) { QPainter painter(this) ...

  3. 遍历String字符串,得到出现次数最多的字母

    //There is no need to explain the code right? package com.hp.test; import java.util.HashMap; import ...

  4. [Mugeda HTML5技术教程之19]制作可定制贺卡

    本文档通过一个实例介绍可定制贺卡的动画的制作过程.实例包含两部分: 1. 动画部分:介绍动画制作过程中如何给祝福词和落款的文本对象命名,如何给定制按钮定义表单动作. 2. 代码部分:介绍贺卡的脚本逻辑 ...

  5. 转载:s:if的用法

    转载网址:http://blog.csdn.net/menhuanxiyou/article/details/5709550 1:直接写表达式 <s:set name="china&q ...

  6. 启动两个tomcat

    因为项目的种种原因,必须启动两个tomcat测试 于是复制tomcat,改端口,报错,到日志看,发现shutdow端口也需要改 总结 server.xml改两个地方的端口 <Server por ...

  7. eclipse 将文件夹作为sourcefolder

    文件夹---右键

  8. Android-1

    @String 支持多语言 layout中的text文本中String都尽量定义在String.xml中,便于多语言管理. <resources> <string name=&quo ...

  9. BZOJ 1497 最大获利(最大权闭合子图)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1497 思路:由题意可以得知,每个顾客都依赖2个中转站,那么让中转站连有向边到汇点,流量为它的建设费用 ...

  10. 《Programming WPF》翻译 第5章 7.控件模板

    原文:<Programming WPF>翻译 第5章 7.控件模板 如果仔细的看我们当前的TTT游戏,会发现Button对象并没有完全为我们工作.哪些TTT面板有内圆角? 图5-14 这里 ...