美文网首页
[OC基础]NSPredicate

[OC基础]NSPredicate

作者: zhulang424 | 来源:发表于2017-08-04 10:30 被阅读19次

NSPredicate,用来指定过滤器条件的对象

  • 创建 NSPredicate 对象
// 直接写好过滤条件
NSPredicate *predicate1 = [NSPredicate predicateWithFormat:@"SELF.itemName == 'a'"];

// 用格式说明符间接生成条件
NSPredicate *predicate2 = [NSPredicate predicateWithFormat:@"SELF.%K == %@",@"itemName",@"a"]; // %K 表示键路径

// 用变量间接生成条件
NSPredicate *predicateTemplate = [NSPredicate predicateWithFormat:@"SELF.itemName == $NAME"];
NSDictionary *varDic = @{@"NAME":@"a"};
NSPredicate *predicate3 = [predicateTemplate predicateWithSubstitutionVariables:varDic];

// 生成过滤自身的条件
NSArray *characterRange = @[@"a",@"b"];
NSPredicate *predicate3 = [NSPredicate predicateWithFormat:@"SELF IN %@",characterRange]; // 等同于 SELF IN {'a','b'}
// 比较运算符支持:==,>=,<=,>,<,!=

// 逻辑运算符支持:&&,||,!,AND,OR,NOT

// 数组运算符支持:BETWEEN {xxx,xxx}(表示数值范围),IN {xxx,xxx,...}(表示特定值)

// 字符串运算符支持:BEGINSWITH[c],ENDSWITH[d],CONTAINS[cd]。c 表示忽略大小写,d 表示忽略发音符号,cd 两者皆有

// 正则表达式:SELF.xxx LIKE '*er*',SELF.xxx LIKE '???er*'。* 表示任意字符,? 表示单个字符
  • 使用 NSPredicate 对象进行判断或过滤
// 用 NSPredicate 处理单个对象
NSPredicate *itemNamePredicate = [NSPredicate predicateWithFormat:@"SELF.itemName == 'a'"];
BOOL result = [itemNamePredicate evaluateWithObject:item4];

// 用 NSPredicate 过滤集合
NSArray *itemsArray = @[item1,item2,item3,item4];
NSArray *resultArray = [itemsArray filteredArrayUsingPredicate:itemNamePredicate];

NSMutableArray *itemsMutableArray = [NSMutableArray arrayWithArray:itemsArray];
[itemsMutableArray filterUsingPredicate:itemNamePredicate];

相关文章

  • [OC基础]NSPredicate

    NSPredicate,用来指定过滤器条件的对象 创建 NSPredicate 对象 使用 NSPredicate...

  • 【OC梳理】NSPredicate

    NSPredicate NSPredicate(谓词),可以根据定义的模糊查询条件,对内存对象进行过滤搜索。 基本...

  • 2021-03-05

    本地模糊查询 本文记录了在OC和Swift语言中,使用NSPredicate在本地数组里进行模糊查询 OC篇 模糊...

  • OC-谓词(NSPredicate)

    OC中的谓词操作是针对于数组类型的,他就好比数据库中的查询操作,数据源就是数组,这样的好处是我们不需要编写很多代码...

  • OC中 谓词(NSPredicate)

    在前一篇文章中我们介绍了OC中一个重要技术通知:http://blog.csdn.net/jiangwei0910...

  • OC学习篇之---谓词(NSPredicate)

    今天我们在来看一下OC中给我们提供的一个技术:谓词(NSPredicate)OC中的谓词操作是针对于数组类型的,他...

  • CoreData+多线程

    基础知识:Core Data入门 查询语句:[IOS开发]CoreData条件查询之NSPredicate应用_超...

  • iOS 中的特殊类

    NSPredicate NSPredicate 是预测的意思,但我们常翻译成谓词。 使用NSPredicate可以...

  • OC-NSPredicate多条件查询

    转载自m.blog.csdn.net/qq_29892943/article/details/52765344 直...

  • OC学习篇之---谓词(NSPredicate)

    在前一篇文章中我们介绍了OC中一个重要技术通知:http://blog.csdn.net/jiangwei0910...

网友评论

      本文标题:[OC基础]NSPredicate

      本文链接:https://www.haomeiwen.com/subject/hrcvlxtx.html