应用程序崩溃在tableview的reloadData方法上

时间:2014-10-27 13:16:29

标签: ios objective-c uitableview

调用[tableView reloadData]表格视图的方法后,我的应用程序崩溃了。这是在删除单行tableview(具有表视图默认删除行为)并调用[tableView reloadData]然后在此委托numberOfSectionsInTableView应用程序崩溃并向我显示崩溃消息[UITableViewCell _setDeleteAnimationInProgress : ] : message sent to deallocated instance之后发生的,我用谷歌搜索,但无法得到健康的反应。如果任何人面临这种​​崩溃,那么请帮助找出这个问题。以下是我的代码。

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

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    if(section==0)
        return [[dbSingleton sharedInstance] get_players_count];
    else if(section==1)
        return 0;
}

- (NSString )tableView:(UITableView )tableView titleForHeaderInSection:(NSInteger)section{
    if(section==0)
        return @"Player Detail";
    return nil;
}

- (UITableViewCellEditingStyle)tableView:(UITableView )tableView editingStyleForRowAtIndexPath:(NSIndexPath )indexPath{
    if(indexPath.section==1)
        return UITableViewCellEditingStyleNone;
    else
        return UITableViewCellEditingStyleDelete;
    }
}

-(CGFloat)tableView:(UITableView )tableView heightForRowAtIndexPath:(NSIndexPath )indexPath{
    return 44;
}

寻找回应。提前谢谢。

2 个答案:

答案 0 :(得分:12)

最后,我找到了解决方案。我错误的是我在reloadData上调用方法commitEditingStyle,它在删除行之前重新加载数据,正如This Thread的回答所提到的那样。我希望这也有助于其他人。 感谢您的参与。

答案 1 :(得分:-1)

[tableView Reload]产生崩溃然后它非常确定数据源中存在问题所以我认为在tableview部分添加断点并检查是否正在更新数据源,否则显示完整的崩溃消息。