断言失败 - [UITableView _endCellAnimationsWithContext] [英] Assertion Failure -[UITableView _endCellAnimationsWithContext]

查看:219
本文介绍了断言失败 - [UITableView _endCellAnimationsWithContext]的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我解析一个xml文件并将其解析的值放在表视图中。表视图只有一个部分。但我得到以下异常:

I am parsing an xml file and putting its parsed values in a table view.The table view has only one section.But i am getting following exception:


二零一三年十月十四日15:21:57.250的tableview [6068:907]中的 *断言失败 - [UITableView的_endCellAnimationsWithContext:],/SourceCache/UIKit/UIKit-2380.17/UITableView.m:909
2013-10-14 15:22:11.227 tableview [6068:907]
由于未捕获异常NSInternalInconsistencyException而终止应用程序,原因:尝试将第0行插入第0部分,只有0在更新后段0'
行* 的*第一掷调用堆栈:
(0x33e752a3 0x3bcde97f 0x33e7515d 0x3474aab7 0x35cb0a9f 0x35de6b27 0x6a10f 0x69ce5 0x33dc6037 0x346dc599 0x6b54b 0x3478c0f5 0x33e4a683 0x33e49ee9 0x33e48cb7 0x33dbbebd 0x33dbbd49 0x379702eb 0x35cd1301 0x68bdd 0x68b64)
++的libc abi.dylib:终止称为抛出异常。

2013-10-14 15:21:57.250 tableview[6068:907] * Assertion failure in -[UITableView _endCellAnimationsWithContext:], /SourceCache/UIKit/UIKit-2380.17/UITableView.m:909 2013-10-14 15:22:11.227 tableview[6068:907] Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'attempt to insert row 0 into section 0, but there are only 0 rows in section 0 after the update' ** First throw call stack: (0x33e752a3 0x3bcde97f 0x33e7515d 0x3474aab7 0x35cb0a9f 0x35de6b27 0x6a10f 0x69ce5 0x33dc6037 0x346dc599 0x6b54b 0x3478c0f5 0x33e4a683 0x33e49ee9 0x33e48cb7 0x33dbbebd 0x33dbbd49 0x379702eb 0x35cd1301 0x68bdd 0x68b64) libc++abi.dylib: terminate called throwing an exception

中的代码是:

/**
 The NSOperation "ParseOperation" calls addFiles: via NSNotification, on the main thread which in turn calls this method, with batches of parsed objects. The batch size is set via the kSizeOfEarthquakeBatch constant.
 */
- (void)addFilesToList:(NSArray *)files {

    NSInteger startingRow = [self.fileList count];
    NSLog(@"STARTING ROW:%d",startingRow);
    NSInteger fileCount = [files count];
    NSLog(@"FILE COUNT : %d",fileCount);
    NSMutableArray *indexPaths = [[NSMutableArray alloc] initWithCapacity:fileCount];
    NSLog(@"INDEX PATHS:%@",indexPaths);
    for (NSInteger row = startingRow; row < (startingRow + fileCount); row++) {
        NSLog(@"into for");

        NSIndexPath *indexPath = [NSIndexPath indexPathForRow:row inSection:0];
        NSLog(@"INDEXPAth %@",indexPath);
        [indexPaths addObject:indexPath];
    }

    [self.fileList addObjectsFromArray:files];
    NSLog(@"ADD objects");
    NSLog(@"FILELIST:%@",self.fileList);

    //GETTING EXCEPTION AT THIS LINE

    [self.tableview insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationAutomatic]; 
}


#pragma mark - UITableViewDelegate\

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

// The number of rows is equal to the number of earthquakes in the array.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    return [self.fileList count];
    NSLog(@"NUMBER OF ROWS :%d",[self.fileList count]);
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *kFileCellID = @"Cell";
    myTableCell *cell = (myTableCell *)[tableView dequeueReusableCellWithIdentifier:kFileCellID];

    // Get the specific earthquake for this row.
    fileList *file = (self.fileList)[indexPath.row];

    [cell configureWithFile:file];
    return cell;
}


推荐答案

使用了两个indexPath(indexPath,lastIndexPath)。但对于lastIndexPath.row有我的数组bound.solve通过检查condition.hope这帮助某人。

In my case issue was i used two indexPath(indexPath,lastIndexPath). but for lastIndexPath.row had out of my array bound.solve by check condition.hope this help someone.

[self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath, lastIndexPath, nil] withRowAnimation:UITableViewRowAnimationAutomatic];

这篇关于断言失败 - [UITableView _endCellAnimationsWithContext]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆