我有一个iPhone 3.0应用程序,可以处理使用Core Data的请求。它有一个视图,所有请求按请求状态分组(sectionNameKeyPath:@“status”)。此外,它还有另一个视图,用户可以在其中更改请求状态。
当特定组中有一行/请求并且用户编辑该请求的状态(因此该行所属的部分应该消失)时,我遇到问题,以下代码引发异常:< / p>
//Change the request status. Request is the NSManagedObject
request.status = [NSNumber numberWithInt:Responded];
// Save the context.
NSError *error;
//The exception is raised at the following line
if (![request.managedObjectContext save:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort(); // Fail
}
异常文本如下: 2009-08-18 15:04:55.866应用程序[263:20b] ***由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'无效更新:第0节中的行数无效。包含的行数更新后的现有部分(8)必须等于更新前的该部分中包含的行数(1),加上或减去从该部分插入或删除的行数(0插入,0删除)。 的
任何人都可以解释为什么我有这个例外以及如何处理它?</ p>
答案 0 :(得分:3)
这表明问题出在您的表修改代码中。大概是你正在调用[table deleteRowsAtIndexPaths:withRowAnimation:],而不是同步你的-numberOfSectionsInTableView;和-tableView:numberOfRowsInSection:结果为新值。