结合之前的学习笔记以及參考《Objective-C编程全解(第三版)》,对Objective-C知识点进行梳理总结。知识点一直在变,仅仅是作为參考,以苹果官方文档为准~


十八、谓语的使用及实例说明


首先先介绍基本经常使用的谓词:
(1)逻辑运算符 && AND || OR 都能够用
(2)IN包括
(3)模糊查询
a、以……开头 BEGINSWITH
b、以……结尾 ENDSWITH
c、包括….字符 CONTAINS
(4)用like进行模糊查询
通配符:*表示随意个字符 ?表示单个字符

like *a  以a结尾
like a*  以a开头
like *a* 包括a字符
like ?a* 第二个字符为a的字符串

实例说明:


创建Book类,Book.h

@interface Book : NSObject
{NSInteger _price;NSString* _bookName;
}- (instancetype)initWithPrice:(NSInteger)price andBookName:(NSString *)bookName;@end

Book.h

#import "Book.h"@implementation Book- (instancetype)initWithPrice:(NSInteger)price andBookName:(NSString *)bookName {if (self = [super init]) {_price = price;_bookName = bookName;}return self;
}- (NSString *)description {return [NSString stringWithFormat:@"Book price:%li,named %@",_price,_bookName];
}@end

main.m

int main(int argc, const char * argv[]) {@autoreleasepool {Book* book1 = [[Book alloc] initWithPrice:20 andBookName:@"C Programming"];Book* book2 = [[Book alloc] initWithPrice:32 andBookName:@"C++ Programming"];Book* book3 = [[Book alloc] initWithPrice:18 andBookName:@"Java Programming"];Book* book4 = [[Book alloc] initWithPrice:45 andBookName:@"OC guiding"];Book* book5 = [[Book alloc] initWithPrice:28 andBookName:@"iOS guiding"];NSArray* books = [NSArray arrayWithObjects:book1,book2,book3,book4,book5, nil];NSPredicate *predicate = [NSPredicate predicateWithFormat:@"price > %i",30];NSArray *filterArray = [books filteredArrayUsingPredicate:predicate];NSLog(@"%@",filterArray);//      逻辑运算符 和 INpredicate = [NSPredicate predicateWithFormat:@"bookName IN {'C Programming','C++ Programming'} AND price > 30"];filterArray = [books filteredArrayUsingPredicate:predicate];NSLog(@"%@",filterArray);//      模糊查询 和 用通配符查询predicate = [NSPredicate predicateWithFormat:@"bookName CONTAINS 'guiding' || bookName like '*Program*' "]; //包括guiding或者包括ProgramfilterArray = [books filteredArrayUsingPredicate:predicate];NSLog(@"%@",filterArray);}return 0;
}

output:

2015-07-09 20:17:24.403 exercise_谓语[632:9877] ("Book price:32,named C++ Programming","Book price:45,named OC guiding"
)
2015-07-09 20:17:24.404 exercise_谓语[632:9877] ("Book price:32,named C++ Programming"
)
2015-07-09 20:17:24.407 exercise_谓语[632:9877] ("Book price:20,named C Programming","Book price:32,named C++ Programming","Book price:18,named Java Programming","Book price:45,named OC guiding","Book price:28,named iOS guiding"
)

转载于:https://www.cnblogs.com/blfshiye/p/5176767.html

Objective-C(十八、谓语使用及实例说明)——iOS开发基础相关推荐

  1. SAP UI5 应用开发教程之四十八 - 如何在 SAP UI5 应用里开发条形码扫描功能试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

  2. Objective-C(十九、通知-消息发送模式之中的一个)——iOS开发基础

    结合之前的学习笔记以及參考<Objective-C编程全解(第三版)>,对Objective-C知识点进行梳理总结. 知识点一直在变.仅仅是作为參考.以苹果官方文档为准~ 十九.通知-消息 ...

  3. 【Android游戏开发十八】解放手指,利用传感器开发游戏!

    本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/android-game/344.html 前 ...

  4. 【海思篇】【Hi3516DV300】十八、TSENSOR 芯片温度检测驱动 开发

    文章目录 一 芯片操作步骤 二 驱动层实现 三 应用层实现 四 测试 一 芯片操作步骤 参考<<Hi3516DV300专业型Smart IP Camera SoC用户指南.pdf>& ...

  5. 【Android游戏开发十八】解放手指,利用传感器开发游戏!(本文讲解在SurfaceView中用重力传感器控制圆球的各方向移动)

    本站文章均为 李华明Himi 原创,转载务必在明显处注明:(作者新浪微博: @李华明Himi ) 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/andr ...

  6. SAP UI5 应用开发教程之四十八 - 如何在 SAP UI5 应用里开发条形码扫描功能

    先看实现效果: 从 Github 下载本步骤的源代码: https://github.com/wangzixi-diablo/ui5-tutorial/tree/main/48 运行命令行 npm i ...

  7. python发短信sim800_玩转 ESP32 + Arduino (十八) 采用SIM800L发送短信和定位(基础知识)...

    一. 测试AT指令平台 普通的串口调试助手就可以调试 二. 有用的AT指令: 1. 查询类指令 AT命令 功能 正常返回 执行后的正常状态 异常处理 AT SIM800是否准备好,握手程序 OK 检查 ...

  8. Go 开源说第十八期预告:基于 Reactor 模式开发网络服务——gnet

    点击蓝字 关注我们 写在前面 GoCN开源说是GoCN推出的一档分享Go开源好项目的直播栏目,通过开源说希望能够帮助到开源作者们实现以下目标: 第一是去推广他们的开源项目 第二说说背后的设计原理和理念 ...

  9. Objective-C(八、正式协议Protocol,非正式协议informal protocol)——iOS开发基础

    结合之前的学习笔记以及参考<Objective-C编程全解(第三版)>,对Objective-C知识点进行梳理总结.知识点一直在变,只是作为参考,以苹果官方文档为准~ 八.正式协议和非正式 ...

最新文章

  1. eclipse 创建maven web项目
  2. .net中日至框架log4net.dll如何使用
  3. Linux系统编程@文件操作(一)
  4. 使用VSCode编辑Markdown
  5. 【音频处理】Adobe Audition 快捷键设置
  6. 【PC工具】更新文字转语音、文字文本朗读工具,语音朗读软件,TTS语音合成...
  7. 程序员35岁之后的出路_我35岁,被裁员,开始给程序员规划人生
  8. 机器学习基础-逻辑回归-09
  9. java注释类型_Java 8类型注释
  10. 马云发情人节寄语:AI和算法是算不清楚婚姻的
  11. windows phone7 学习笔记06——数据绑定
  12. python中options类_python命令行参数解析OptionParser类用法实例
  13. Word恢复忘记保存的文件(打开任意.asd文件)
  14. python web 开发从入门到精通 pdf_Python Web开发从入门到精通
  15. 转--各种文件后缀名与打开方式大全
  16. 2023年社交平台研究报告
  17. Google Chrome源码剖析
  18. fabric.js 钢笔橡皮问题
  19. 嵌入式编程中boot和app的s19简易合并方法(使用mfc编程)
  20. 门禁系统服务器 控制器 读卡器,门禁系统建设方案.docx

热门文章

  1. 欧洲最大云服务公司火灾!数百万网站出现故障企业网络推广大型瘫痪现场!...
  2. mycat mysql好可用架构_想要学会MyCat高可用集群搭建,但是这些知识点却还玩不明白?...
  3. bulk这个词的用法_雅思考试真题解析|雅思听力“正负含义词”的妙用
  4. vim-commentary 插件用法
  5. (转载)Ubuntu命令卸载软件
  6. 查看spark是否有僵尸进程,有的话,先杀掉。可以使用下面命令
  7. elasticsearch ——id字段说明,内部是_uid
  8. Iphone 安装 ppsspp
  9. docker mysql 主从库配置
  10. Spring Framework Part2 IOC