gpt4 book ai didi

iphone - NSDictionary 可以与 iPhone 上的 TableView 一起使用吗?

转载 作者:太空狗 更新时间:2023-10-30 03:39:08 28 4
gpt4 key购买 nike

在 UITableViewController 子类中,需要实现一些方法来加载数据和处理行选择事件:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1; //there is only one section needed for my table view
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [myList count]; //myList is a NSDictionary already populated in viewDidLoad method
}

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

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease ];
}

// indexPath.row returns an integer index,
// but myList uses keys that are not integer,
// I don't know how I can retrieve the value and assign it to the cell.textLabel.text


return cell;
}


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

// Handle row on select event,
// but indexPath.row only returns the index,
// not a key of the myList NSDictionary,
// this prevents me from knowing which row is selected


}

NSDictionary 应该如何与 TableView 一起工作?

完成这项工作最简单的方法是什么?

最佳答案

我不明白你为什么要使用字典(继承无序)来完成需要回答有序问题(行)的任务,但我认为你已经从某个地方获得了字典并且无法更改它。如果是这种情况,您必须定义要显示键的顺序,从而隐式派生一个数组。一种方法是按字母顺序排序,另一种方法如下:

// a) get an array of all the keys in your dictionary
NSArray* allKeys = [myList allKeys];
// b) optionally sort them with a sort descrriptor (not shown)
// c) get to the value at the row index
id value = [myList objectForKey:[allKeys objectAtIndex:indexPath.row]];

value 现在是在 tableView:didSelectRowAtIndexPath: 中选择的对象,或者是在 tableView:cellForRowAtIndexPath: 中处理单元格所需的对象:

如果基础 NSDictionary 发生变化,您必须重新加载([myTable reload] 等)UITableView。

关于iphone - NSDictionary 可以与 iPhone 上的 TableView 一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2657171/

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