私はIOSで新しく、UITableView
の検索バーを作成しています。私は配列を直接使用するとうまくいきますが、辞書がある配列を持っていれば動作しません。NSPredicateメソッドを使用してios内の辞書配列の検索バーメソッド
私は辞書の配列を持っている:
- (void)viewDidLoad {
[super viewDidLoad];
NSMutableDictionary *person1 = [NSMutableDictionary dictionaryWithDictionary:@{
@"Name" : @"john",
@"Age" : @"10"
}];
NSMutableDictionary *person2 = [NSMutableDictionary dictionaryWithDictionary:@{
@"Name" : @"piter",
@"Age" : @"22"
}];
NSMutableDictionary *person3 = [NSMutableDictionary dictionaryWithDictionary:@{
@"Name" : @"rams",
@"Age" : @"23"
}];
self.person = [[NSMutableArray alloc]initWithObjects:person1,person2,person3 ,nil];
}
私はUITableView
上で、これらの辞書名を印刷しています。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *simpleTableIdentifier = @"myCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
}
cell.textLabel.text = [[self.personobjectAtIndex:indexPath.row]objectForKey:@"Name"];
return cell;
}
UITableView
に名前のリストが表示されます。私は、検索バーを使用して、私は特定の単語を検索し、それらが私のUITableView
に表示したいが、そのは、このコードを使用して動作していない:
-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{
if([searchText length] == 0){
self.isfiltered = NO;
}
else{
self.isfiltered = YES;
NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"SELF contains[cd] %@",searchText];
filteredList = [self.person filteredArrayUsingPredicate:resultPredicate];
}
[self.mytable reloadData];
}