我有一张表,当我选择一行时,执行此命令:
- (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)中,我有这个值:
所以,当我点击我表格的第一行(现在indexPath.row是[0])时,NSLog显示数字2,但是返回数字4451524096,为什么?我该如何解决呢?
答案 0 :(得分:5)
数组不能包含普通数字(原始数据类型,如int
,float
,NSInteger
,...),它们只能保存对象。因此,当您将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);