* 由于未捕获的异常终止应用程序' NSInternalInconsistencyException',原因:'尝试将第0行插入第0部分,但第0部分只有0行更新后
我意识到这里的问题是我正在尝试向tableView添加一个单元格,但它并不希望它不添加一个单元格而且我无法弄清楚原因。
- (IBAction)addNewIngredient: (id) sender
{
NSString *newIngredient = [recipe createIngredient];
[[recipe ingredients]addObject:newIngredient];
//figure out where that item is in the array
int lastRow = [[recipe ingredients]indexOfObject: newIngredient];
NSIndexPath *ip = [NSIndexPath indexPathForRow:lastRow inSection:0];
NSLog(@"Added a new ingredient!");
[[self tableView] insertRowsAtIndexPaths:[NSArray arrayWithObject:ip] withRowAnimation:
UITableViewRowAnimationTop];
}
澄清我在这里尝试做的事情:
配方有一个属性成分,是一系列NSStrings。 我正在向配料阵列添加一个对象(这会自动增加阵列数量,还是我必须手动执行?)...
然后我用" int lastRow = [[recipe ingredients] indexOfObject:newIngredient]"来确定该项目在数组中的位置。 然后获得指向那里的索引路径。然后将该成分插入tableView。
答案 0 :(得分:1)
您例外的原因是当您插入行时,您的numberOfRowsInSection
将再次被调用。
那时,您的数据需要更新,这样如果您有0行并且正在插入一行,则该函数返回1