tableView中多行多列中的数据删除。
今天在做一个二维数组的删除的时候犯了一个错,下面通过代码来看看。
// 错误代码
[self.dataArr removeObject:obj];
[self.dataArr removeObjectAtIndex:0];
[self.dataArr removeObject:self.dataArr[0][0]];
首先拿到一个数组我们要删除数据,首先想到的肯定是这个。
我也根据这个去删除,通过打印数组中每个数组的个数。发现并没有减少。最后是通过打印数组元素的类名来知道了怎么个回事。
我们二维数组中包含的是一个个数组,如果用上面的第一三个方法删除,那么他是永远都不会找到这个obj 所以不会删除。那么用第二个方法,他会删除掉二维数组中第0个数组。所以还是没有删掉想要删除的。
// 正确代码
NSMutableArray * tempArr = [[NSMutableArray alloc] init];
tempArr = [self.dataArr[section] mutableCopy];
[tempArr removeObjectAtIndex:row];
[self.dataArr replaceObjectAtIndex:section withObject:tempArr];
用一个空数组对copy 你想要删除的对象所在二维数组中的数组。
在这个数组中删除掉你想要删除的那个对象,
此时再将这个操作后的数组替换掉你想要删除的对象所在二维数组中的数组。OK。完美。
不知道有没有小伙伴遇到和我一样的问题。
---来自涛胖子的工作笔记