使用 Obejctive C 在 tableview 单元格中搜索特定值时如何获取所有数组值?

How to get all the array values when searching particular values in tableview cell using Obejctive C?

我实现了一个带有自定义单元格的 TableView,带有两个标签来填充城市名称和城市 ID(我隐藏了城市 ID 标签)。我的问题是,当我搜索城市名称时,我也无法获得城市 ID,当我搜索城市名称时,我希望这两个值都被过滤。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
     static NSString *cellidentifier=@"citylocation";
        searchTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellidentifier];
        if (!cell) {
            cell= [[searchTableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellidentifier];
        }
        if(!isFilltered)
        {
            cell.textLabel.text = [avahotel objectAtIndex:indexPath.row];
            cell.city.text = [[createdDate objectAtIndex:indexPath.row]stringValue];
        }else
        {
            cell.textLabel.text = [filteredString objectAtIndex:indexPath.row];
    }    
    return cell;  
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    if(isFilltered)
    {
        return [filteredString count];
    }
    return [avahotel count];
}
-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
    if(searchText.length == 0)
    {
        isFilltered = NO;
    }else
    {
        isFilltered = YES;
        filteredString = [[NSMutableArray alloc]init];
        for(NSString *str in avahotel)
        {
            NSRange stringRange = [str rangeOfString:searchText options:NSCaseInsensitiveSearch];

            if(stringRange.location != NSNotFound)
            {
                [filteredString addObject:str];
            }
        }
    }
    [_searchtableview reloadData];
}

在此方法的 else 部分使用以下代码。 searchBar textDidChange

已更新

    isFilltered = YES;
    filteredString = [[NSMutableArray alloc]init];
    filteredCityId = [[NSMutableArray alloc]init];

    for(Int i=0; i<avahotel.count; i++)
    {
       NSString *str = [avahotel objectAtIndex:i]; 
        NSRange stringRange = [str rangeOfString:searchText options:NSCaseInsensitiveSearch];

        if(stringRange.location != NSNotFound)
        {
            [filteredString addObject:[avahotel objectAtIndex:i]]; 
            NSString *strId = [NSString stringWithFormat:@"%d",i]; 
            [filteredCityId addObject:strId]

            // here your both filter array declare.filteredcityId and filteredString           
        }
     }