CoreData NSPredicate的字符串比较

在使用过程中有这么一个需求,需要剔除实体某个属性的值不包含某个字符串,查资料后代码如下:

request.predicate= [NSPredicate predicateWithFormat:@"!(sessionId CONTAINS[cd] %@)",@"nice"];

如上:sessionId这个属性不包含nice这个字符串。

NSPredicate字符串比较的其他语法:

1、BEGINSWITH:左边的表达式以右边的表达式作为开始。

(例:request.predicate= [NSPredicate predicateWithFormat:@"(属性 BEGINSWITH[cd] %@)",@"开头的字符串"];)

2、CONTAINS:左边的表达式包含右边的表达式。

(例:request.predicate= [NSPredicate predicateWithFormat:@"(属性 CONTAINS[cd] %@)",@"包含的字符串"];)

3、ENDSWITH:左边的表达式以右边的表达式作为结束。

(例:request.predicate= [NSPredicate predicateWithFormat:@"(属性 ENDSWITH[cd] %@)",@"结束的字符串"];)

4、LIKE:左边的表达式等于右边的表达式:?和*可作为通配符,其中?匹配1个字符,*匹配0个或者多个字符。

(例1:request.predicate= [NSPredicate predicateWithFormat:@"(属性 LIKE[cd] %@)",@"zsz_???_iOS"]; // 属性等于zsz_开头中间,3个任意字符,_iOS结尾的字符串)

(例2:request.predicate= [NSPredicate predicateWithFormat:@"(属性 LIKE[cd] %@)",@"zsz_*_iOS_*"]; // 属性等于zsz_开头中间+任意字符+_iOS+任意字符的字符串)

5、MATCHES:左边的表达式根据ICU v3(更多内容请查看ICU User Guide for Regular Expressions)的regex风格比较,等于右边的表达式。

详细请看参考链接:

1、http://nshipster.cn/nspredicate/

2、http://perfectshen.github.io/2016/03/13/NSPredicate/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转载自:http://www.cocoachina.com/ios/20160111/14926.html 1、大...
    一笔春秋阅读 7,823评论 0 2
  • 首先,我们需要知道何谓谓词,让我们看看官方的解释:The NSPredicate class is used to...
    旭日飞扬阅读 5,419评论 0 0
  • 前言 有时我们需要在一大段长文本中过滤出我们需要的字段,或者检验该文本是否符合要求(该文本是否是邮箱,链接,电话号...
    進无尽阅读 4,545评论 0 1
  • NSPredicate是一个Foundation类,它指定数据被获取或者过滤的方式。它的查询语言就像SQL的WHE...
    Dean麦兜阅读 2,870评论 0 2
  • 汉华手陶——老少皆宜的软陶制作 软陶是一种个性化的艺术创作,可以提高人们的手脑协调能力,色彩感知,专注力,观察力,...
    汉华手陶阅读 2,767评论 0 0