gpt4 book ai didi

ios - 在 TableView 中显示数组和字典值

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:08:49 24 4
gpt4 key购买 nike

我创建了一个数组、两个字典和一个 TableView 。 tableview 应该显示数组的内容,并且该数组包含字典的数据。当我尝试使用“[mArray addObject:(mDictionary)];”显示它时它抛出一个异常,但如果我使用“[mArray addObject:[mDictionary objectForKey:@"firstname"]];”它工作正常。

你能帮我理解为什么会这样吗?如果不使用“objectForKey”就不能显示字典值吗?

这是我的“ViewController.m”。

#import "ViewController.h"

@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
mArray = [[NSMutableArray alloc]init];
mDictionary = [[NSMutableDictionary alloc]init];
[mDictionary setValue:@"shanu" forKey:@"firstname"];
[mDictionary setValue:@"kumar" forKey:@"lastname"];
mDictionary2 = [[NSMutableDictionary alloc]init];
[mDictionary2 setValue:@"hgjghjgf" forKey:@"firstname1"];
[mDictionary2 setValue:@"ghjgjgfj" forKey:@"lastname1"];
[mArray addObject:mDictionary];
[mArray addObject:mDictionary2];

CGRect frame = self.view.frame;
UITableView *tableView = [[UITableView alloc]initWithFrame:frame style:UITableViewStylePlain];
tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
tableView.backgroundColor = [UIColor cyanColor];
tableView.separatorColor = [UIColor blackColor];
tableView.delegate = self;
tableView.dataSource = self;
[self.view addSubview:tableView];
}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
return @"Array and Tableview";
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{

return mArray.count;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
if (!cell) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"];
}
cell.textLabel.text = [mArray objectAtIndex:indexPath.row];
return cell;
}

- (void)dealloc
{
[mArray release];
[mDictionary release];
[mDictionary2 release];
[super dealloc];
}
@end

最佳答案

在.h文件中声明一个数组:

NSArray *keys

在viewDidLoad中写这个

keys = [mDictionary allKeys];

这在 cellForRowAtIndexPath 中

cell.textLabel.text = [mDictionary objectForKey:[keys objectAtIndex:indexPath.row];

关于ios - 在 TableView 中显示数组和字典值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14641103/

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