使用Table中的indexPath引用数组

时间:2011-08-29 06:43:02

标签: objective-c xcode uitableview nsindexpath

我有一大堆数据,我在UITable中显示。该表按字母顺序分为几个部分。当用户选择一个单元格时,我需要弄清楚该项目在数组中的位置。单元格中唯一的识别数据是标签,似乎没有任何帮助。数组中的数据也不一定按字母顺序排序。如何确定他们选择的数组中的哪个项目。我可以将元数据或其他东西绑定到表格单元格吗?我想根据indexPath和数组中的总计数进行某种计算,但由于数组不是按字母顺序排列的,而且表格是,这不起作用。

希望这是有道理的。谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

这通常是解决问题的一个问题。当您为tableview构建数据源时,您必须以对您能够一致地显示信息的方式对数组进行排序,这也将导致您能够始终如一地访问它。

换句话说,您正在访问构建用于-tableView:cellforrowatindexpath:的数据源调用的表的内容,用于构建单元格的算法将与您使用索引访问所选单元格的算法相同didSelectCellAtIndexPath的路径:。

答案 1 :(得分:0)

您应该查看下面的UITableView Delegate方法:

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

它将给出所选单元格的索引路径。获得索引路径后,您可以访问行和节属性,如下所示:

indexPath.row;
indexPath.section;

获得这两个值之后,您可以访问数组对象并查看每个部分中选择的项目:

NSLog(@"Section %i, Row %i, Item %@", indexPath.section, indexPath.row, [array objectAtIndex:indexPath.row]);