结合之前的学习笔记以及參考《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. soul一直显示正在登录聊天服务器,soul这个软件,为什么有些人在玩的时间很久以后(两百天以上),就不会再主动和其他人打招呼了?...
  2. 损失函数约束类间不一致性
  3. nacos作注册中心+feign接口调用进行服务提供和服务消费代码示例
  4. 关于Java中的随机数产生
  5. 电脑运行adb闪退_adb+python进阶使用
  6. 理解Hinton的Capsule Networks1
  7. go 链路追踪_Go技术日报(20200911)
  8. Grunt上手指南(转)
  9. APP违法使用个人信息?不用怕,华为云VSS为你保驾护航
  10. python决策树原理_关于决策树算法最通俗的一次Python学习教程,你肯定得看
  11. 经典滑盖全面屏手机大降价!荣耀Magic2到手1799元
  12. Linux删除安卓温控,RK平台关闭温度控制降频功能
  13. 前台页面操作文件属性。
  14. Google Kick Start 2018 Round C Planet Distance
  15. layuimini tab切换刷新解决方案
  16. UEFI开发学习1 - Ubuntu18.04搭建edk2环境
  17. 计算机虚拟机安装教程,VMware(虚拟机)装Win7系统详细图文教程
  18. 9700usb网卡 linux驱动,qf9700 USB网卡在x86 linux和arm linux上的驱动安装以及配置
  19. conda 速度慢 解决方案
  20. android 电子签名设备,[Android]实现电子签名并截屏

热门文章

  1. 子网划分为什么全0全1子网号不能使用?CIDR为什么能使用全0全1子网号?
  2. 计网链路层mac地址和ip地址缺一不可
  3. android java 给控件设置style,在Android Lollipop for Material Design中为SwitchCompat按钮设置样式/着色...
  4. 企业为实现网络营销更要将网络营销重点放在用户价值上
  5. 浅析如何从比值得出网站优化效果的好坏?
  6. aspose html转pdf_PDF如何转HTML?办公党必备
  7. unity从入门到精通下载_左手Unity右手Unreal
  8. python统计字符串中每个单词出现的次数_python中每个单词出现的次数是一组字符串?...
  9. go语言笔记——map map 默认是无序的,不管是按照 key 还是按照 value 默认都不排序...
  10. python3 dict 转 json 不ascii转码 去除空格