我在iOS编程上还很新,我正在尝试制作这个预算应用。我想将预算类的实例类添加到表视图中。但是当我点击完成按钮时,就会出现此错误。我一直在论坛上搜索我的问题的答案。

到目前为止,我发现Aby的票价与我有同样的问题(http://stackoverflow.com/questions/11706254/nsinternalinconsistencyexception-reason-attempt-to-insert-row-0-into-section?answertab=active#tab -top),但在那篇文章中我无法真正解决我的问题。

我确定我知道为什么会发生此错误,但是我不知道如何解决它:-(
有谁能帮助我解决这个问题?

我想发布一些我的代码图片,但是由于垃圾邮件的保护,stackoverflow不允许我这样做。

AddBugdetViewController.m

(IBAction)done
{
    [self.presentingViewController dismissViewControllerAnimated:YES completion:nil];

    Budget *budget = [[Budget alloc] init];
    budget.name = self.textField.text;
    budget.amount = [Budget convertStringToNSNumber:self.textField.text];

    [self.delegate addBudgetViewController:self didFinishAddingItem:budget];
}


BudgetViewController.m

(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [self.budget.items count];
}

(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Budgets"];

    Budget *item = [self.budget.items objectAtIndex:indexPath.row];

    [self configureTextForCell:cell withChecklistItem:item];

    return cell;
}

- (void)addBudgetViewController:(AddBudgetViewController *)controller didFinishAddingItem:(Budget *)NewBudget
{
    NSLog(@"Adding budget: %@", NewBudget.name);
    NSLog(@"Budget amount: %@", NewBudget.amount);

    [self.tableView beginUpdates];

    int newRowIndex = [self.budget.items count];
    [self.budget.items addObject:NewBudget];

    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:newRowIndex inSection:0];
    NSArray *indexPaths = [NSArray arrayWithObject:indexPath];
    [self.tableView insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationAutomatic];

    [self.tableView endUpdates];

    [self dismissViewControllerAnimated:YES completion:nil];
}


请告诉我是否需要更多信息来查找问题并解决问题:-)

干杯安德斯

最佳答案

您的BudgetViewController似乎定义了一个名为“ budget”的属性。无论正在创建和显示什么代码,BudgetViewController都应将该属性设置为应在视图控制器中显示的任何预算对象。

关于ios - 'NSInternalInconsistencyException',原因:“试图将第0行插入第0节,但更新后第0节只有0行”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12823176/

10-08 23:12