首页 > 代码库 > libc++abi.dylib: terminate_handler unexpectedly threw an exception

libc++abi.dylib: terminate_handler unexpectedly threw an exception

在执行一个界面的时候,就是一直libc++abi.dylib: terminate_handler unexpectedly threw an exception。也没有指明是哪里错误,后来经检查发现是数组越界
- (CellInfo_t *)getCellInfo:(NSIndexPath *)indexPath{
    NSInteger row=[self getCellInfoFromIndex:indexPath];
    return self.cellInfoArrayTwo[row];
}
- (NSInteger)getCellInfoFromIndex:(NSIndexPath *)indexPath{
    NSInteger section=indexPath.section;
    if (section==0) {
        return indexPath.row;
    }else if (section==1){
        return [self numberOfRowsInSection:0]+indexPath.row;
    }else{
        NSAssert(NO, @"Invalid cellInfo From Index");
    }
    return -1;
}
- (NSInteger)numberOfRowsInSection:(NSInteger)section{
    switch (section)
    {
        case 0:return 1;
        case 1:return 12;
        default:
            NSAssert(NO, @"Invalid section index");
            break;
    }
    return -1;
}
后经检查发现,我把
[self numberOfRowsInSection:0]的0写成1了,导致数组一直越界。程序crash

libc++abi.dylib: terminate_handler unexpectedly threw an exception