-[__NSArrayM objectAtIndex:]: 索引 11 超出界限 [0 .. 10]' 目标 c
Posted
技术标签:
【中文标题】-[__NSArrayM objectAtIndex:]: 索引 11 超出界限 [0 .. 10]\' 目标 c【英文标题】:-[__NSArrayM objectAtIndex:]: index 11 beyond bounds [0 .. 10]' objective c-[__NSArrayM objectAtIndex:]: 索引 11 超出界限 [0 .. 10]' 目标 c 【发布时间】:2017-03-06 11:13:27 【问题描述】:大家好,if(indexPath.row==3) 部分的所有问题是 -[__NSArrayM objectAtIndex:]:索引 11 超出范围 [0 .. 10]'。无法找到问题的确切位置。下面是我的代码
if(indexPath.row==3)
cell.textLabel.text = @"Subject";
cell.detailTextLabel.text=[empDict objectForKey:@"Subject"];
if(indexPath.row==3)
cell.textLabel.text = @"Education";
cell.detailTextLabel.text=[empDict objectForKey:@"Education"];
NSArray *times = [empDict objectForKey:@"ClassTimings"];
NSString *stgmt = [[times objectAtIndex:indexPath.row]objectForKey:@"GMT"];
NSString *strtime = [[times objectAtIndex:indexPath.row]objectForKey:@"Time"];
NSString *strtimeZone = [[times objectAtIndex:indexPath.row]objectForKey:@"TimeZone"];
NSString *str = [@[stgmt, strtime, strtimeZone] componentsJoinedByString:@" "];
if(indexPath.row==3)
cell.textLabel.text = @"Times To Take";
cell.detailTextLabel.text=[NSString stringWithFormat:@"%@",str];
return cell;
【问题讨论】:
为什么你用了两次NSString *str = [@[stgmt, strtime, strtimeZone] componentsJoinedByString:@" "]; str = [@[stgmt, strtime, strtimeZone] componentsJoinedByString:@" "];
搞错了,兄弟编辑了
好吧,为什么你用了三个if(indexPath.row==3)
信息很清楚;您试图访问包含 11 个对象的数组的第 12 个元素。异常发生在哪一行?显示您的numberOfRowsInSection
我不相信您会在“if(indexPath.row==3) 部分”中遇到异常,因为它们都没有发送objectAtIndex:
。
【参考方案1】:
你的问题不在"if(indexPath.row==3)"
您从以下三行中的任何一行收到错误
NSString *stgmt = [[times objectAtIndex:indexPath.row]objectForKey:@"GMT"];
NSString *strtime = [[times objectAtIndex:indexPath.row]objectForKey:@"Time"];
NSString *strtimeZone = [[times objectAtIndex:indexPath.row]objectForKey:@"TimeZone"];
您尝试访问没有12 elements
的'times'
数组的12th element
(当indexPath.row==12
的值)...
希望对你有帮助..
【讨论】:
【参考方案2】:此问题是因为您尝试访问包含 11 个元素的数组的第 12 个元素。
在您的代码中,如果 times
数组没有 12 个元素,并且您尝试访问第 12 个元素,则可能会出现此问题。也就是说,如果 indexpath.row = 12
并且您尝试通过 [times objectAtIndex:indexPath.row]
访问第 12 个对象会导致此错误。
【讨论】:
以上是关于-[__NSArrayM objectAtIndex:]: 索引 11 超出界限 [0 .. 10]' 目标 c的主要内容,如果未能解决你的问题,请参考以下文章
NSArrayM objectAtIndex:索引 6 超出范围
NSArrayM insertObject:atIndex:]: 对象不能为 nil