美文网首页iOS资料iOSiOS 基础知识·底层原理
NSPredicate(谓词)搜索功能实现

NSPredicate(谓词)搜索功能实现

作者: zhangyunjiang | 来源:发表于2016-06-02 11:08 被阅读594次

    前提

    本搜索功能主要是在集合套字典的数据源中实现
    

    实现步骤

      1.提供谓词搜索关键字
      2.提供搜索区域
      3.将搜索关键字和谓词结合
      4.接收搜索结果
    

    数据源

    数据源样式为集合套字典

    屏幕快照 2016-06-02 上午10.54.08.png

    核心搜索代码

    (1)self.dataList查询数据源
    (2)arr 按照规定的key值进行数据查询
    (3)searchStr 搜索关键字
    (4)_searchResultArr 搜索结果
    
     //搜索关键字
    NSString *searchStr =self.titlename;
    
    //按照规定的key值进行数据查询
    NSArray *arr=@[@"MCType",@"MCCompanyname",@"MCIntroduce",@"MCPlace",@"MCTime",@"Money",@"MCRequirement"];
    
    _predicateStr=[NSMutableString stringWithFormat:@""];
    
    for (NSString *parameterStr in arr) {
        [_predicateStr appendString:[NSString stringWithFormat:@"self.%@ CONTAINS [CD] '%@' OR ",parameterStr,searchStr]];
    }
    [_predicateStr deleteCharactersInRange:NSMakeRange(_predicateStr.length-4,4)];
    
    NSPredicate *predicate = [NSPredicate predicateWithFormat:_predicateStr];
    //查询结果
    //self.dataList查询数据源
    _searchResultArr = [NSMutableArray arrayWithArray:[self.dataList filteredArrayUsingPredicate:predicate]];
    

    通过搜索结果后显示在tabview上

    Simulator Screen Shot 2016年6月2日 上午11.05.05.png Simulator Screen Shot 2016年6月2日 上午11.05.50.png

    相关文章

      网友评论

        本文标题:NSPredicate(谓词)搜索功能实现

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