美文网首页
NSPredicate谓词的使用

NSPredicate谓词的使用

作者: LucXion | 来源:发表于2017-09-15 17:27 被阅读0次
    • 两个数组获取交集
        //目标数组
        NSArray *array1 = [NSArray arrayWithObjects:@"好",@"2",@"3",@"5",@"5",@"6",@"7", nil];
        //筛选词数组
        NSArray *array2 = [NSArray arrayWithObjects:@"好",@"5", nil];
        //根据筛选词生成 谓词对象
        NSPredicate *predicate1 = [NSPredicate predicateWithFormat:@"SELF in %@",array2];
        //根据函数获取筛选结果 (结果为所有符合条件的元素<汉字、拼音、数字>的集合<同一个元素可以出现多次>)
        NSArray *temp1 = [array1 filteredArrayUsingPredicate:predicate1];
    
    • 基本语法:比较运算符 > < = !=
        //目标数组
        NSArray *array1 = [NSArray arrayWithObjects:@1,@2,@3,@4,@5,@5,@6,@7, nil];
        //根据筛选词生成 谓词对象
        NSPredicate *predicate1 = [NSPredicate predicateWithFormat:@"SELF >= 4"];
        //根据函数获取筛选结果
        NSArray *temp1 = [array1 filteredArrayUsingPredicate:predicate1];
    
    BETWEEN
        //目标数组
        NSArray *array1 = [NSArray arrayWithObjects:@1,@2,@3,@4,@5,@5,@6,@7, nil];
        //根据筛选词生成 谓词对象
        NSPredicate *predicate1 = [NSPredicate predicateWithFormat:@"SELF BETWEEN {2,7}"];
        //根据函数获取筛选结果   >= 2并且<= 7
        NSArray *temp1 = [array1 filteredArrayUsingPredicate:predicate1];
    
    • 包含关系
    //目标数组
        NSArray *array1 = [NSArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5",@"5",@"6",@"7", nil];
        /*
         CONTAIN[cd] 'ang' //包含某个字符串
         BEGINSWITH[c] 'sh'  //以某个字符串开头
         ENDSWITH[d] 'ang'     //以某个字符串结束
         注:[c]不区分大小写[d]不区分发音符号即没有重音符号[cd]既不区分大小写,也不区分发音符号。
         */
        //根据筛选词生成 谓词对象
        NSPredicate *predicate1 = [NSPredicate predicateWithFormat:@"SELF CONTAINS [cd] '5'"];
        //根据函数获取筛选结果
        NSArray *temp1 = [array1 filteredArrayUsingPredicate:predicate1];
    
    • 通配符
        //目标数组
        NSArray *array1 = [NSArray arrayWithObjects:@"13213",@"2312",@"342",@"12394",@"13125",@"124125",@"1255554316",@"55537", nil];
        /*
         like [cd] '*553*'
         注:[c]不区分大小写[d]不区分发音符号即没有重音符号[cd]既不区分大小写,也不区分发音符号。
         */
        //根据筛选词生成 谓词对象
        NSPredicate *predicate1 = [NSPredicate predicateWithFormat:@"SELF like [cd] '*5??5*'"];
        //根据函数获取筛选结果
        NSArray *temp1 = [array1 filteredArrayUsingPredicate:predicate1];
    
    • 拼音匹配
    //将输入转换为小写
        searchText = searchText.lowercaseString;
        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name contains %@ or pinYin contains %@ or pinYinHead contains %@", searchText, searchText, searchText];
        self.searchResult = [self.cities filteredArrayUsingPredicate:predicate];
    

    相关文章

      网友评论

          本文标题:NSPredicate谓词的使用

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