gpt4 book ai didi

ios - 如何填充 UITableView 中的部分

转载 作者:行者123 更新时间:2023-11-29 03:27:54 25 4
gpt4 key购买 nike

有人可以建议执行以下操作的最佳方法吗?

我有一个带有 3 个按钮的 UIViewController。为清楚起见,按钮是:1. 酒店2. 购物3.室内事件

单击按钮时,它将转到 UITableView,其中包含与该按钮关联的企业列表。因此,点击酒店,将显示酒店列表。

但我的问题如下。

对于酒店和购物,UITableView 需要有部分来区分,例如从四星级酒店到三星级酒店。对于购物,UITableView 中必须至少有 12 个不同的部分。室内事件将没有部分 - 只有企业列表。

为了填充 UITableView,我从 .csv 文件中读取了所有企业的列表。在我的 .csv 文件中,我为每组企业分配了一个 ID,例如酒店(三星级和四星级)是 ID 1,购物(所有 12 个不同的部分)是 ID 2,室内事件是 ID 3这是 .csv 文件的示例。

ID, Company Name, Address, Tel, Email, Website, Details, Image Name

我已经设法阅读了一组中的商家列表,但我无法将酒店和购物分成几个部分。我尝试了以下内容。例如我添加 2 个数组的酒店,然后检查每个酒店的名称。如果酒店名称是1A 或 2A,我将它添加到 3 星阵列中,如果它是1B或2B我加到4星阵。但这是非常乏味的,不是我想象的最佳实践。随着购物部分包含数十家企业,它会变得更加乏味。所以我不能单独检查每个公司名称。以下是我如何将业务对象添加到 NSMutableArray _array 以定义部分。但就像我提到的,要检查所有的公司名称,这将变得非常乏味。

- (NSArray *) csvArray2PresidentsArray:(NSArray *)csvArray
{
int i = 0;

for (NSArray *row in csvArray)
{
// The first row is a header - SKIP
if (i > 0)
{
BusinessDetailContent *_businessDetailContent = [[BusinessDetailContent alloc] init];
_businessDetailContent.no = [row objectAtIndex:0];
_businessDetailContent.companyName = [row objectAtIndex:1];
_businessDetailContent.address = [row objectAtIndex:2];
_businessDetailContent.tel = [row objectAtIndex:3];
_businessDetailContent.email = [row objectAtIndex:4];
_businessDetailContent.website = [row objectAtIndex:5];
_businessDetailContent.details = [row objectAtIndex:6];
_businessDetailContent.imageName = [row objectAtIndex:7];

// USE TO FILTER RESULTS
NSString *strFromInt = [NSString stringWithFormat:@"%d", self.tagNumber];

if ([_businessDetailContent.no isEqualToString:@"1A"] ||
[_businessDetailContent.no isEqualToString:@"2A"])

{
[_threeStarArray addObject: _businessDetailContent];
}

else if ([_businessDetailContent.no isEqualToString:@"1B"] ||
[_businessDetailContent.no isEqualToString:@"2B"])

{
[_fourStarArray addObject: _businessDetailContent];
}
}
i++;
}

[_array addObject: _threeStarArray];
[_array addObject: _fourStarArray];

return (NSArray *) self.filteredArray;
}

是否有更好的方法来检查/处理这个问题?我曾考虑过将另一个字段添加到 .csv 文件中,该文件将定义一个例如酒店是 3 或 4 星级。所有企业都一样。然后在上面的代码中,我可以只扫描这个辅助 ID,并根据它是什么,将它添加到它自己的数组/部分?

最佳答案

为此,我更倾向于使用 NSMutableDictionary 并将值放在那里:

[aDict setValue:threeStarArray forKey:@"three_star"];

等等...然后你可以专门抓取数据,它比将所有项目放入 1 个数组中更整洁。然后,您可以通过键值区分 TableView 中的部分。

此外,当您返回时,您不需要强制转换 NSArray (假设 self.filteredArray 是一个 NSArray)。

关于ios - 如何填充 UITableView 中的部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20215772/

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