Ios 如何使用NSPredicate筛选NSArray

Ios 如何使用NSPredicate筛选NSArray,ios,objective-c,Ios,Objective C,在我的数组中有不同类型的值,有些可能是字符串、对象或键值类型 在此示例中,数组包含NSString、NSObject和NSDictionary类型的值。 example : ContactName[0] "ABC" ContactName[1] = XYZ ContactName[2] = ( { language = @"en"

在我的数组中有不同类型的值,有些可能是字符串、对象或键值类型

在此示例中,数组包含NSString、NSObject和NSDictionary类型的值。

example : ContactName[0] "ABC"
          ContactName[1] = XYZ
          ContactName[2] = (
                             {
                                language = @"en"
                                value = "PQR"
                             },
                             {
                                language = @"de"
                                value = "QWERTY"
                             }
                          )
最后,有人能帮我用NSPredicate过滤这种类型的数组吗

我想在
UISearchBar
中将其筛选为用户类型第一个关键字


请帮助我,我是新手。

searchresult&_kdropdwnoptionare NSArray _ktableviewis uitableview它给了我一个错误:不能用非stringError的东西执行子字符串操作:这个类不符合键语言的键值编码。从这里获取项目searchresult&_kdropdwnoptionare NSArray _ktableviewis uitableview它给了我以下错误:无法使用非stringError的内容执行子字符串操作:此类不符合键语言的键值编码。从这里开始实施项目
#pragma mark - Search delegate methods

- (void)filterContentForSearchText:(NSString*)searchText

{

    NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"SELF CONTAINS[c] %@",searchText];

    searchResult = [_kDropDownOption filteredArrayUsingPredicate:resultPredicate];

    [_kTableView reloadData];

}

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{

    if (searchBar.text.length == 0) {
        searchEnabled = NO;
        [_kTableView reloadData];
    }
    else {
        searchEnabled = YES;
        [self filterContentForSearchText:searchBar.text];

        NSLog(@"%@",self->searchResult);
    }
}

-(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
    [searchBar resignFirstResponder];

    searchEnabled = YES;

    [self filterContentForSearchText:searchBar.text];

}

-(void)searchBarCancelButtonClicked:(UISearchBar *)searchBar
{
    [searchBar resignFirstResponder];
    [searchBar setText:@""];
    searchEnabled = NO;
    [_kTableView reloadData];


}