gpt4 book ai didi

iphone - 如何将 NSDictionary 数据获取到 UITableView

转载 作者:可可西里 更新时间:2023-11-01 03:37:51 25 4
gpt4 key购买 nike

我有 2 个 NSArray,我试图在一个 NSDictionary 中将它们链接在一起,以便每个 providerName 都有一个与之关联的 providerId

我希望这两个数组使用 self.providersDict = [NSDictionary dictionaryWithObjects:providerName forKeys:providerId]; 相互关联,然后将 providerName 显示为表格单元格标题和id 作为表格单元格的副标题。

目前我无法在 UITable 上显示数据,甚至无法使用以下命令注销字典:

   for (id key in self.providersDict) {
NSLog(@"key: %@, value: %@", key, [self.providersDict objectForKey:key]);
}

在.h中声明:

NSArray *providerName;
NSArray *providerId;

@property (nonatomic, strong) NSDictionary *providersDict;

并在 viewDidLoad 中:

    providerName = [NSArray arrayWithObjects:@"provider1", @"provider2", @"provider3", nil];
providerId = [NSArray arrayWithObjects:@"1", @"2", @"3", nil];

self.providersDict = [NSDictionary dictionaryWithObjects:providerName
forKeys:providerId];

UITable 方法:

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [[self.providersDict allKeys] count];
}


-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{



static NSString *unifiedID = @"aCellID";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:unifiedID];
if (!cell) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:unifiedID];

}

for (id key in self.providersDict) {
NSLog(@"key: %@, value: %@", key, [self.providersDict objectForKey:key]);
}

NSString *providerNameString = [self.providersDict objectForKey:@"provider"];
NSString *providerIdString = [self.providersDict objectForKey:@"object"];
cell.textLabel.text = providerNameString;
cell.detailTextLabel.text = providerIdString;


return cell;

}

感谢您的帮助。

最佳答案

NSString *providerNameString = [self.providersDict objectForKey:@"provider"];
NSString *providerIdString = [self.providersDict objectForKey:@"object"];

您已经使用键 1、2、3 初始化了 self.providersDict。因此您应该尝试使用这些键获取 providerNameString 而不是 @"provider" 相同的 providerIdString.

尝试

NSString *key = [self.providersDict allKeys][indexPath.row];

NSString *providerNameString = self.providersDict[key];
NSString *providerIdString = key;
cell.textLabel.text = providerNameString;
cell.detailTextLabel.text = providerIdString;

一旦你的 self.providersDict 被初始化,不要忘记调用 [tableView reloadData];

至于为什么不为 Provider 创建一个包含 id、name 和其他信息的模型类的建议。您可以将每个提供商添加到一个数组中,这会让您的生活变得更加轻松。

关于iphone - 如何将 NSDictionary 数据获取到 UITableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15247510/

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