gpt4 book ai didi

ios - 如何从IOS中的多个数组中搜索UITableView中的单元格

转载 作者:行者123 更新时间:2023-12-01 19:03:11 27 4
gpt4 key购买 nike

实际上是从 获取数据JSON 网络服务。我需要从 UITableView 中搜索数据使用 uisearchdisplaycontroller 的单元格.

我已使用 NSMutablArray 成功地将数据传递到单元格中有多个数组。但现在我需要从中搜索数据。

我的数组:

[
{
"name": "jhon",
"city": "chennai",
}
{
"name": "Micle",
"city": "Newyork",
}
{
"name": "Micle",
"city": "Washigton",
}
]

我在 UITableView 中的自定义单元格:
cell.P_name.text = [details objectForKey:@"name"];
cell.P_city.text = [details objectForKey:@"city"];

在搜索中我试过:
- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
{
//-- Help to customize operations
searchResults = [[NSArray alloc]initWithArray:mainArray];
NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"SELF contains[cd] %@", searchText];
searchResults = [details filteredArrayUsingPredicate:resultPredicate];
[tableView reloadData];
}

任何人都可以帮助解决我的问题。

最佳答案

你应该有2个数组:

  • 您的主要 JSON 数据存储 (mainDataList)
  • 用于填充 TableView 的数据源数组 (dataSourceList)

  • 最初:
    self.dataSourceList = self.mainDataList;

    因为您正在表格 View 中显示所有数据。当任何搜索被取消时,您也会返回此状态(然后重新加载)。

    但是,在搜索时,您需要过滤 dataSourceList 的内容。并重新加载表:
    - (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
    {
    NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"name contains[cd] %@", searchText];

    self.dataSourceList = [self.mainDataList filteredArrayUsingPredicate:resultPredicate];

    [tableView reloadData];
    }

    注意:上述谓词仅搜索 name在你的字典里...

    现在,您所有的表格 View 方法都只使用 self.dataSourceList ,然后根据您的状态修改其内容。您的代码简洁明了。微笑 :-)

    关于ios - 如何从IOS中的多个数组中搜索UITableView中的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21553437/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com