Cocoa提供了一个类NSPredicate类,该类主要用于指定过滤器的条件,该对象可以准确的描述所需条件,对每个对象通过谓词进行筛选,判断是否与条件相匹配。谓词表示计算真值或假值的函数。在cocoa中封装的一个数据库框架cocoaData里面 在进行查询(包括模糊查询)时同样会要用到谓词;下面对谓词的使用方法及规则进行简要的介绍下:

1,用predicateWithFormat创建一个谓词

  • 条件

NSString *predicateString =@"name=='Herbie'"

NSString *predicateString =@"engine.horsepower > 150" 属性值

NSString *predicateString =@"(engine.horsepower > 50) AND (engine.horsepower     < 200)";可以运用运算符

NSString *predicateString =@"engine.horsepower BETWEEN { 50, 200 }";这里可以运用between关键字。和上面效果一样

NSString *predicateString =@"name IN { 'Herbie', 'Snugs', 'Badger', 'Flap' }";包含在其中用IN

NSString *predicateString =@"name BEGINSWITH 'Bad'";字符串运算符BEGINSWITH,ENDSWITH,CONTAINS[c][d][cd]

BEGINSWITH:检查某个字符串是否以另一个字符串开头。

ENDSWITH:检查某个字符串是否以另一个字符串结尾。

CONTAINS:检查某个字符串是否以另一个字符串内部。

[c]不区分大小写[d]不区分发音符号即没有重音符号[cd]既不区分大小写,又不区分发音符号。

  • 创建谓词

NSPredicate *predicate=[NSPredicate predicateWithFormat:predicateString]

results = [cars filteredArrayUsingPredicate: predicate];

NSLog (@"%@", results);

  • like的使用

predicate = [NSPredicate predicateWithFormat:@"name LIKE[cd] '*er*'"];//*代表通配符Like还接受[cd].

results = [cars filteredArrayUsingPredicate: predicate];

NSLog (@"%@", results);

predicate = [NSPredicate predicateWithFormat:@"name LIKE[cd] '???er*'"];//?只匹配一个字符并且还可以接受[cd].

results = [cars filteredArrayUsingPredicate: predicate];

NSLog (@"%@", results);

感谢大神

coredata中谓词的使用的更多相关文章

  1. CoreData使用方法三: NSPredicate在CoreData中的使用

    NSPredicate在CoreData中经常使用作查询使用,相当于sql语句中的where查询子句. 最经常使用的方法为: NSPredicate *ca = [NSPredicate predic ...

  2. [Xcode 实际操作]七、文件与数据-(12)数据持久化存储框架CoreData的使用:查找CoreData中的数据

    目录:[Swift]Xcode实际操作 本文将演示如何查找数据持久化对象. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit //引入数据持 ...

  3. iOS中谓词的使用

    Cocoa提供了一个类NSPredicate类,该类主要用于指定过滤器的条件,该对象可以准确的描述所需条件,对每个对象通过谓词进行筛选,判断是否与条件相匹配.谓词表示计算真值或假值的函数.在cocoa ...

  4. Coredata中的多线程

    =================== 疑问: 1.coredata是什么?结构 2.如果在简单的demo中,我们可以在主线程中使用coredata.但是如果在真正的大项目中,这样可行么? 3.假设都 ...

  5. TinkerPop中的遍历:图的遍历中谓词、栅栏、范围和Lambda的说明

    关于谓词的注意事项 P是Function<Object,Boolean>形式的谓词.也就是说,给定一些对象,返回true或false.所提供的谓词在下表中概述,并用于各种步骤,例如has( ...

  6. [Xcode 实际操作]七、文件与数据-(14)数据持久化存储框架CoreData的使用:删除CoreData中的数据

    目录:[Swift]Xcode实际操作 本文将演示如何删除数据持久化对象. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit //引入数据持 ...

  7. [Xcode 实际操作]七、文件与数据-(13)数据持久化存储框架CoreData的使用:编辑CoreData中的数据

    目录:[Swift]Xcode实际操作 本文将演示如何修改数据持久化对象. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit //引入数据持 ...

  8. iOS CoreData 中 objectID 的不变性

    关于 CoreData的 objectID 官方文档有这样的表述:新建的Object还没保存到持久化存储上,那么它的objectID是临时id,而保存之后,就是持久化的id,不会再变化了. 那么,我想 ...

  9. Mysql中谓词使用date_format的优化

    优化前: SELECT a.* FROM t1 a, (SELECT obj_id,MAX(PRE_DETAIL_INST_ID) PRE_DETAIL_INST_ID FROM t1 WHERE D ...

随机推荐

  1. iOS:界面适配--iPhone不同机型适配 6/6plus

    iOS:界面适配--iPhone不同机型适配 6/6plus        机型变化 坐标:表示屏幕物理尺寸大小,坐标变大了,表示机器屏幕尺寸变大了: 像素:表示屏幕图片的大小,跟坐标之间有个对应关系 ...

  2. javascript 数组slice和splice

    var a = [1,4,2,5,6,9,10];console.log(a.slice(3)); //[5,6,9,10]console.log(a.slice(-3)); //[6,9,10]co ...

  3. PSAM读卡芯片TDA8007BHL开发

    WWT:Work Waiting Time ATR:Answer To Reset,复位应答 etu =F/Df 1.     PSAM概述和应用 PSAM(PurchaseSecure Access ...

  4. 二极管IN4001~IN4007参数

    电压范围50~1000V 正向导通电流1A 导通电压降:1.1V 具体见下图:

  5. WCF的执行过程

    既然是实现互通信.那么肯定会有概念意义上的服务端Server  和概念意义上的客户端 Client,在这里,我所说明的都是概念意义上的,单独强调此,是因为,基于WCF的通信没有物理上的划分,但是概念上 ...

  6. 【VC编程技巧】文件☞2.3CArchive的用法

    CArchive 对象提供了一个类型安全缓冲机制CArchive 对象提供了一个类型安全缓冲机制.用于将可序列化对象写入CFile 对象或从中读取可序列化对象.通常,CFile 对象表示磁盘文件:但是 ...

  7. 【转】如何删除一个repository(仓库)

    原文网址:http://my.oschina.net/anna153/blog/377758?p=1 如何删除自己创建的一个项目,我浏览了一下github网站,确实不太容易找到删除功能.这里介绍一下啊 ...

  8. 【转】putty基本操作--不错

    原文网址:http://www.cnblogs.com/skynext/p/3256035.html putty基本操作 1,进入全屏 标题栏右键,菜单中就有full screen选项. 2,退出全屏 ...

  9. javascript笔记3之数据类型

    /* var box = 250; //十进制整型 alert(box); var box = 070; //八进制,按照十进制输出是56 alert(box); var box = 0x1f; // ...

  10. 微博OpenAPI练习之问题记录

    今日想通过新浪微博OpenAPI,做一个客户端出来.可以说过程比较艰难.这里只记录下遇到的问题,其它的按api要求注册.创建应用什么就好了. 1.API jar引用问题 创建了自己的工程,并按照文档说 ...