0

尝试插入行时,我不断收到以下错误:

*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 2 beyond bounds [0 .. 1]'
*** First throw call stack:
(0x31fe82a3 0x39ccc97f 0x31f33b75 0x8d18f 0x33fee5a9 0x33edb0c5 0x33edb077 0x33edb055 0x33eda90b 0x33edae01 0x33df9421 0x31fbd6cd 0x31fbb9c1 0x31fbbd17 0x31f2eebd 0x31f2ed49 0x35af62eb 0x33e44301 0xa49d 0x3a103b20)
libc++abi.dylib: terminate called throwing an exception

有谁知道这里发生了什么?

这是我的代码:

-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if(editingStyle == UITableViewCellEditingStyleDelete)
    {
        Caseload *deletedCaseload = [self.caseload objectAtIndex:indexPath.row];
        [self.caseload removeObject:deletedCaseload];

        [self.caseloadTableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
    }
    else if
        (editingStyle == UITableViewCellEditingStyleInsert)
    {


        Caseload *copiedEntry = [self.caseload objectAtIndex:indexPath.row];
        Caseload *newEntry = [[Caseload alloc]init];
        newEntry.name = copiedEntry.name;
        newEntry.address = copiedEntry.address;
        newEntry.phoneNumber = copiedEntry.phoneNumber;
        newEntry.identNumber = copiedEntry.identNumber;

        [self.caseload addObject:newEntry];
        [self.caseloadTableView insertRowsAtIndexPaths:
                    [NSArray arrayWithObject:indexPath]
                                              withRowAnimation:UITableViewRowAnimationRight];
    }
}
4

2 回答 2

1

每当您尝试在totalIndex + 1处获取数组的对象/值时,都会生成这种类型的错误,例如,如果您的数组有4 个(确保索引以0开头)并且您尝试获取值,例如
[Myarray objectAtIndex:4]当时类型的错误发生。

所以最好的原因是使用 breakPoint 并通过我的建议找出你的问题。

于 2013-09-14T09:21:47.060 回答
0

错误是“ NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 2 beyond bounds [0 .. 1]'”。这意味着你在objectAtIndex:某个索引为 2 的地方调用“”,而你的 NSArray 只有索引 0 和索引 1 处的条目。

你需要弄清楚你在哪里设置虚假索引,我怀疑这可能从你的 " numberOfRowsInSection:" 方法开始。

于 2013-09-14T09:05:27.273 回答