0

我有一个全局变量,我从表视图写入,在:

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

我正在将全局 eventID 变量(这是一个 [NSNumber numberWithInt])设置为被选中的行:

[[GlobalData sharedGlobalData]setEventId:[NSNumber numberWithInt:indexPath.row]];

然后我使用这个变量来访问数组中的索引。但是我得到了奇怪的结果,当我 NSLog eventID 变量时,它显示为“0”,这是正确的,我选择了表中的第一行。

但是,当我使用 eventID 变量作为索引处的对象时:

event = [[venue venueEventList]objectAtIndex:[[GlobalData sharedGlobalData]eventId]];

该应用程序因以下错误而崩溃:

* Terminating app due to uncaught exception 'NSRangeException', reason: '* -[__NSArrayM objectAtIndex:]: index 163756576 beyond bounds [0 .. 4]' * First throw call stack: (0x1b8f012 0x1600e7e 0x1b310b4 0x5139 0x6261c7 0x626232 0x6264da 0x63d8e5 0x63d9cb 0x63dc76 0x63dd71 0x63e89b 0x63ee93 0xf3e83f7 0x63ea88 0x99ae63 0x98cb99 0x626dd2 0xf3e012c 0x32343 0x5f4285 0x5f44ed 0xffe5b3 0x1b4e376 0x1b4de06 0x1b35a82 0x1b34f44 0x1b34e1b 0x19d87e3 0x19d8668 0x544ffc 0x29cd 0x28f5)

eventID 变量肯定是 0,所以为什么要在索引 163756576 处访问数组

任何帮助都会很棒!

4

1 回答 1

0

好吧,显然是一个完全愚蠢的问题,我显然又睡得不够,我没有得到 nsnumber 的 int 值,因此得到了 long 值。问题通过以下方式解决:

[variable intValue];
于 2013-07-14T14:57:03.243 回答