我正在删除UITableView
中的所有项目。因此,我加载UITableView
的数组的count = 0.删除数组中的最后一项后,在重新加载表时,我在numberofRowInSection
收到错误。
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [arrProjects count];
}
- (void)tableView:(UITableView *)aTableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"");
if (editingStyle == UITableViewCellEditingStyleDelete)
{
[tableProject beginUpdates];
Project *project = [arrProjects objectAtIndex:indexPath.row];
[[CommonModel shared]DeleteProjectDetails:project.ProjectId];
[arrProjects removeObject:project];
[self reloadTableProject:YES];
[tableProject endUpdates];
}
}
-(void) reloadTableProject:(BOOL)isReloadRequired
{
//[arrProjects removeAllObjects];
arrProjects = [[CommonModel shared]GetAllProjects];
if(isReloadRequired)
[tableProject reloadData];
}
这是错误:
'无效更新:第0部分中的行数无效。数量 更新(1)后必须包含在现有部分中的行 等于之前该部分中包含的行数 update(2),加上或减去插入或删除的行数 该部分(0插入,0删除)和加号或减号的数量 行移入或移出该部分(0移入,0移出)。
我每次都会收到此错误,不仅在数组为空时。
答案 0 :(得分:2)
设置:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return [_datasourceArray count];
}
要清空TableView,请执行以下操作:
[_datasourceArray removeAllObjects];
[_tableView reloadData];
答案 1 :(得分:0)
你需要从arrProjects中删除对象,在UITableViewCellEditingStyleDelete中,
[arrProjects removeObjectAtIndex:indexPath.row];
包括
也很好[self.tableView beginUpdates] and [self.tableView endUpdates]
当您开始和结束删除这些对象时
答案 2 :(得分:0)
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [arrProjects count];
}
- (void)tableView:(UITableView *)aTableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"");
if (editingStyle == UITableViewCellEditingStyleDelete)
{
Project *project = [arrProjects objectAtIndex:indexPath.row];
[[CommonModel shared]DeleteProjectDetails:project.ProjectId];
[arrProjects removeObject:project.ProjectId];
[self reloadTableProject: YES];
}
}