NSPredicate谓词搜索使用小记

iOS中的搜索正常情况下用NSPredicate都足以解决问题,比如我们有一个原数组_dataArraty:

NSPredicate*predicate =[NSPredicate predicateWithFormat:@"name like %@", searchTexts];
NSArray * resultArr = [_dataArray filteredArrayUsingPredicate:predicate];

like语法可以匹配搜索

一般情况下,搜索是否包含某个字符串,用

NSPredicate*predicate =[NSPredicate predicateWithFormat:@"SELF contains[cd] %@", searchTexts];
NSArray * resultArr = [_dataArray filteredArrayUsingPredicate:predicate];

现在来点更实用的,一个原数组里面装得是一些字典,想搜索字典里面的某个key(比如name)所对应的value的值,可以这样:

    NSPredicate * result = [NSPredicate predicateWithFormat:@"name contains[cd] %@", searchText];
    NSArray * searchResults = [self.dataArray filteredArrayUsingPredicate:result];

so easy!

时间: 2024-08-05 15:50:59

NSPredicate谓词搜索使用小记的相关文章

用谓词搜索实现本地搜索

从网络请求数据,然后存储到数组中,这时候要进行搜索,我们可以使用谓词搜索. - (void) textFieldDidChange:(UITextField*) TextField{ NSString *conditionStr = TextField.text; NSLog(@"+++++%@", conditionStr); // 2. 创建谓词,准备进行判断的工具 NSPredicate *predicate = [NSPredicate predicateWithFormat:

NSPredicate 谓词

NSPredicate 简述:Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取. //谓词 NSPredicate *ca = [NSPredicate predicateWithFormat:(NSString *), ...]; Format: (1)比较运算符 >,<,==,>=,<=,!= 可用于数值及字符串 @"number > 100" (2)范围运算符:IN.BETWEEN @

IOS开发之NSPredicate谓词的用法

编程的人员不管是上过大学还是从培训机构出来的都应该SQL语句有所了解,我们知道,在SQL语句当中 where 条件表达式可以对二维关系表的数据做条件筛选.微软的C# .net中也实现了功能能和SQL语句相媲美的技术,它就是List泛型集合的Lambda表达式,支持查找.排序.比较.组合等.在java中虽然没有在语言中集成对List对象的操作的实现,但是第三方开源库同样实现了这一功能.在IOS开发Cocoa框架中提供了一个功能强大的类NSPredicate,下面来讨论一下它的强大之处在哪...NS

NSPredicate 查询/搜索

IOS NSPredicate 查询.搜索 简述:Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取. 最常用到的函数 + (NSPredicate *)predicateWithFormat:(NSString *)predicateFormat, ...; 1.比较运算符 > .< .== . >= .<= . !=例:@"number >= 99" 2.范围运算符:IN .BETWEEN

NSPredicate 谓词总结 数组过滤 模糊匹配

NSPredicate 用于指定过滤条件,主要用于从集合中分拣出符合条件的对象,也可以用于字符串的正则匹配. NSPredicate常用方法介绍 [objc] view plaincopy 1.创建NSPredicate(相当于创建一个过滤条件) NSPredicate *predicate = [NSPredicate predicateWithFormat:@"过滤条件"]; 2.判断指定的对象是否满足NSPredicate创建的过滤条件 [predicate evaluateWi

ios UISearchDisplayController 实现 UITableView 搜索功能

UISearchDisplayController 是苹果专为 UITableView 搜索封装的一个类. 里面内置了一个 UITableView 用于显示搜索的结果.它可以和一个需要搜索功能的 controller 关联起来,其它的像原 TableView 和搜索结果 TableView 的切换, mask 的显示等等都 封装好了,使用起来非常非常的简单.特别是要实现全屏搜索时使用最多. 全屏搜索的意思是如果你用了  NavigationBar 当点击搜索框时 TableView 会自动弹上去

UITableView的搜索:SearchBar和SearchDisplayController;UISearchController

之前我写过一篇关于在tableView中利用谓词搜索的随笔,当时使用的是自定义textField,最近在写电子书,需要在书目时实现搜索功能.所以在此把以前用于实现搜索功能系统提供的的SearchBar和SearchDisplayController的方法在这里和大家分享一下.不过在iOS8滞后,苹果已经不再推荐我们是使用这两个旧东西,而是让我们使用UISearchController,自然我也会把这个新东西的用法在这里演示一下. SearchBar和SearchDisplayController

iOS开发-NSPredicate

Cocoa中谓词(Predicate)提供了一个通用的查询方式处理数据,可以获取和指定数据的过滤形式,Cocoa实际开发中可以是使用NSPredicate及其父类NSComparisonPredicate和NSCompoundPredicate.其风格类似于SQL查询语言和正则表达式的混合体,提供了具有表现力的,自然语言界面来定义一个集合被搜寻的逻辑条件.一般来说稍微操作过数据库基本上很容易理解其中的方法,至于使用的方法也很简单. 集合中的NSPredicate Foundation提供使用谓词

NSPredicate(正则表达式)

1. 正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串.通常被用来检索.替换那些符合某个模式的文本. 2. iOS中正则使用 有三种(NSPredicate, rangeOfString:option:, NSRegularExpression),主要使用NSPredicate(谓词)匹配 例如 检测email是否合法: ———————————————————————————— NSString *email = @“[email protected]”: NSString *