我收到此错误:指数超越界限的错误
-[__NSArrayM objectAtIndex:]: index 556503008 beyond bounds [0 .. 2]'
这里就是应用程序崩溃:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSUInteger index = [[Data singleton].annotations objectAtIndex:indexPath.row];
self.pinVC = [[PinViewController alloc]init];
[self.pinVC setIdentifier:index];
[[self navigationController]pushViewController:self.pinVC
animated:YES];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return self.pinArray.count;
}
我新的目标C,我不知道为什么会这样正在发生。有人可以帮我吗?
只需几件事就可以开始排除故障:显示您的'tableView:numberOfRowsInSection:'的实现。行数可能与您在注释数组中的任何内容不匹配。另外,你在'objectAtIndex:'中返回的值很可能是'NSNumber'的对象,而不是'NSUInteger',在这种情况下,你可以在'NSNumber'对象上调用'integerValue'来返回一个整数值。最后,'setIdentifier:'方法中发生了什么? – Jeremy 2013-02-25 23:34:40
PinViewController具有一个NSUInteger的标识属性。 'objectAtIndex:'方法返回一个'NSUInteger' – 2013-02-25 23:38:17