Uitableview单元格自定义唯一ID

时间:2010-08-23 20:03:49

标签: iphone objective-c

我有一个表视图,当用户选择一个单元格时,我想记录一个唯一的id。我以为我可以使用索引,但数字不是连续的(即1. 1,4,5,9等)。有没有办法为单元格定义自定义索引或ID?

所以我在表格中有以下单元格:

狗 猫 鱼

以上细胞的ID如下所示

2只狗 4只猫 8条鱼

是否有一种方法,当用户触摸鱼群时,它将返回8?

Indexpath.row会返回2而我需要8.那么我可以为每个单元格设置一个自定义属性吗?

2 个答案:

答案 0 :(得分:1)

不确定我是否完全理解这个问题,但这应该是“顺序的”:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    NSLog(@"%i", indexPath.row);
}

更新:好的,所以我认为我感到困惑。

你需要将你的狗,猫,鱼等放在一个看起来像[狗,猫,鱼]的NSArray中,与你在屏幕上显示的内容相匹配,否则你将永远无法将两者联系起来。

indexPath.row将是您指向NSArray的指针。所以,当你点击第二行时,上面的代码将吐出1.你的数组应该是你的cat对象,即使那不是猫的id。

那么你做

myAnimal = [myArray objectAtIndex:indexPath.row];

获取您的对象,在这种情况下将是您的猫。 myAnimal.id会给你2个。

或者,如果你的动物是字典,那就是

[myAnimal objectForKey: @"id"]

会给你2。

希望这会有所帮助。

答案 1 :(得分:0)

如果您的ID实际上是您列出的两个权限,那么您可以只执行2 ^(indexPath.row + 1)

否则,您还可以保留一个NSDictionary,它将您的单元格标签作为键,并将所需的索引号作为其值。或者重新修改你的tableview以使用NSDictionary而不是NSArray或者你正在使用的任何东西。