NSPredicate谓词的使用

2017-09-15  本文已影响0人  LucXion
    //目标数组
    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];
上一篇 下一篇

猜你喜欢

热点阅读