Iphone 为什么在将第6个元素插入tableview时会出现NSRangeException?

Iphone 为什么在将第6个元素插入tableview时会出现NSRangeException?,iphone,cocoa-touch,uitableview,nsmutablearray,Iphone,Cocoa Touch,Uitableview,Nsmutablearray,我正在将数据插入表视图,如下所示。如果有超过6个元素,则5到6个元素没有问题,然后应用程序崩溃并显示错误: “由于未捕获的异常'NSRangeException'而终止应用程序,原因:'***-[NSMutableArray objectAtIndex::::::index 11超出界限[0..10]”“ 显然,崩溃消息表明您试图访问的元素超出了数组可以包含的元素的限制。请检查您是否正在更新tableview和数组中的numberOfRows。在numberOfRowsInSection中,您必

我正在将数据插入表视图,如下所示。如果有超过6个元素,则5到6个元素没有问题,然后应用程序崩溃并显示错误:

“由于未捕获的异常'NSRangeException'而终止应用程序,原因:'***-[NSMutableArray objectAtIndex::::::index 11超出界限[0..10]”“


显然,崩溃消息表明您试图访问的元素超出了数组可以包含的元素的限制。请检查您是否正在更新tableview和数组中的numberOfRows。

numberOfRowsInSection
中,您必须为oldNumberOfRows+addedRowsNumber设置正确的行数

编辑:

在ProductArray中,在将行添加到tableview之前,为每行添加字典Yes

使用此代码

if(indexPath.row < [ProductArray count]){

NSDictionary *aDict = [ProductArray objectAtIndex:indexPath.row];
cell.textLabel.text= [aDict objectForKey:@"ProductName"];

}
if(indexPath.row<[ProductArray count]){
NSDictionary*aDict=[ProductArray objectAtIndex:indexath.row];
cell.textLabel.text=[aDict objectForKey:@“ProductName”];
}

该错误表明您正试图访问仅包含11个对象的NSMutableArray中索引为11(第12个对象)或更高版本的对象。数组索引从0开始,因此这可能是问题所在。尝试对ProductArray的大小进行NSLog,并检查它包含多少对象。正如许多人之前所说,碰撞的部分可能是numberofRowsInSection方法。如果您不想为ProductArray的大小而烦恼,只需返回一个固定的数字,看看其余的代码是否正常

你能发布插入新数据的代码吗?它在超过6个元素时崩溃,因为那是表格可滚动的时候。UITableView在滚动到时加载行。
if(indexPath.row < [ProductArray count]){

NSDictionary *aDict = [ProductArray objectAtIndex:indexPath.row];
cell.textLabel.text= [aDict objectForKey:@"ProductName"];

}