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