2015-06-23 65 views
1

我正在Xcode中的表UITableViewController上工作。當我嘗試刪除應用程序的行我有這個錯誤每次:`無效更新:第0部分中的行數無效

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid update: invalid number of rows in section 0. The number of rows contained in an existing section after the update (3) must be equal to the number of rows contained in that section before the update (3), plus or minus the number of rows inserted or deleted from that section (0 inserted, 1 deleted) and plus or minus the number of rows moved into or out of that section (0 moved in, 0 moved out) 

代碼表加載和刪除行:

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

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

這就是今天的刪除方法:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { 
if (editingStyle == UITableViewCellEditingStyleDelete) { 
    [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade]; 
} else if (editingStyle == UITableViewCellEditingStyleInsert) {} 
} 

我希望你能幫我解決這個錯誤! 謝謝!

回答

2

您忘記從您的模型self.toDoItems中刪除對象。
嘗試使用此類機構更新您的最後一種方法:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (editingStyle == UITableViewCellEditingStyleDelete) { 
     [self.toDoItems removeObjectAtIndex:indexPath.row]; 
     [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade]; 
    } else if (editingStyle == UITableViewCellEditingStyleInsert) {} 
    } 
} 
+0

嘿!對此感激不盡! –

+0

現在已經修復並運行!太好了! –

相關問題