使用indexPath.row获取数组的键

时间:2014-04-04 18:03:13

标签: ios objective-c

我有一张表,当我选择一行时,执行此命令:

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


     InfoClienteViewController *infoViewController = [[InfoClienteViewController alloc] init];
     [self.navigationController pushViewController:infoViewController animated:YES];

     [infoViewController setIdt:idt[indexPath.row]];


    NSLog(@"You Select -> %zd",idt[indexPath.row]);

}

在我的数组(idt)中,我有这个值:

  1. [0] - > 2
  2. [1] - > 3
  3. [2] - > 4
  4. 所以,当我点击我表格的第一行(现在indexPath.row是[0])时,NSLog显示数字2,但是返回数字4451524096,为什么?我该如何解决呢?

2 个答案:

答案 0 :(得分:5)

数组不能包含普通数字(原始数据类型,如intfloatNSInteger,...),它们只能保存对象。因此,当您将idt[indexPath.row]记录为普通数字时,您会感到胡言乱语。

您的日志应为:

NSLog(@"You Select -> %@", idt[indexPath.row]);

正确记录对象。

答案 1 :(得分:0)

如果您的数组包含int或integer值,那么您需要像下面这样访问。但请确保您的数组包含所有int值。

//对于int数据类型,像这样访问它

NSLog(@"You Select -> %d", idt[indexPath.row].intValue);

//对于整数数据类型,可以像这样访问

NSLog(@"You Select -> %ld", idt[indexPath.row].integerValue);