我知道我错过了一些明显的东西,但我似乎无法让我的nsinteger东西写入传递变量并将它们放入字符串中。这是代码的一部分。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *chosenCell = [tableView cellForRowAtIndexPath:indexPath];
//need to get the ID number for this guy
NSInteger id_number = chosenCell.tag;
NSLog(@"This is the id number I'm sending to the item list %@", id_number);
NSLog(@"This is the id number I'm sending to the item list %i", id_number);
ItemViewController *vc = [[ItemViewController alloc] initWithPlayer:id_number andGame:gameId];
[[self navigationController] pushViewController:vc animated:YES];
[vc release];
}
问题是,如果我使用%@打印它可以正常工作,但实际上它不应该,因为这不是一个正在打印的对象而是一个整数。如果我使用整数调用,它的功能错误,给我一个真正的离线整数。这听起来像答案只是“使用%@”,但问题是,在其他情况下,当我尝试将其用作解决方案时(例如在下一个控制器上),我得到一个exc_bad_access。请告诉我,我在这里遗漏了一些明显的东西......
答案 0 :(得分:1)
%i
将有效。
Apple's Documentation,这是%i
指定的内容。
答案 1 :(得分:1)
要同时使用32位和64位系统,您应该正确使用此处Apple文档中指定的%ld
或%lx
(在标准平台依赖项下):
http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html