gpt4 book ai didi

ios - 在 TableView 中为使用 Paging 接收的 JSON 数据添加标题标题

转载 作者:行者123 更新时间:2023-11-29 00:11:59 26 4
gpt4 key购买 nike

我已经搜索了很多,但我无法找到解决方案,有人可以指导我解决以下问题。

使用 page1 等的分页接收的 JSON 数据。

"ErrorCode":null,
"Message":"Success",
"Data":[
{
"ProductID":1,
"ProductName" :"Mango",
"ProductCategory" :"Fruits"
},
{
"ProductID":2,
"ProductName" :"Banana",
"ProductCategory" :"Fruits"
},
{
"ProductID":3,
"ProductName" :"Fanta",
"ProductCategory" :"Drinks"
},
{
"ProductID":4,
"ProductName" :"Pepsi",
"ProductCategory" :"Drinks"
},
{
"ProductID":5,
"ProductName" :"Carrot",
"ProductCategory" :"Vegetables"
}

上面是示例数据,其中对于水果,当我向上滚动时,作为返回,我在使用分页时获得多条记录,这是正确完成的,并且数据在表格 View 中正确显示所有可用记录,如上所示。

我的要求是,我想显示每个产品类别的标题,例如标题将显示为水果,所有相关产品将显示在下面。如果一次性接收到所有数据,我本可以做到这一点,但是当我们使用分页时,我不确定在 json 响应中收到的下一页数据是否会有另一个产品类别或相同的产品类别。

如果我的问题不清楚,请澄清。希望做过分页的人知道我在说什么。

提前致谢。

最佳答案

声明一个数据源,例如 self.dataSourceDictionary = [NSMutableDictionary dictionary]; 并像下面这样过滤你的响应(responseDictionary 保存 JSON 响应)

- (void)catagorizeData:(NSDictionary *)responseDictionary
{
for (NSDictionary *productDictionary in [responseDictionary objectForKey:@"Data"]) {
NSMutableArray *eachCategoryArray = [self.dataSourceDictionary objectForKey:[productDictionary objectForKey:@"productCategory"]];
if (eachCategoryArray == nil) {
eachCategoryArray = [NSMutableArray array];
[eachCategoryArray addObject:productDictionary];
[self.dataSourceDictionary setObject:eachCategoryArray forKey:[productDictionary objectForKey:@"productCategory"]];
}else{
[eachCategoryArray addObject:productDictionary];
}
}
}

每次获得寻呼响应时调用上述方法。现在在分节的 tableview 中显示过滤后的数据,如下所示:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return [self.dataSourceDictionary count];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
NSString *key = [[self.dataSourceDictionary allKeys] objectAtIndex:section];
return [[self.dataSourceDictionary objectForKey:key] count];
}

N.B 这段代码只是给你一个基本的想法。

关于ios - 在 TableView 中为使用 Paging 接收的 JSON 数据添加标题标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46259765/

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