为了账号安全,请及时绑定邮箱和手机立即绑定

关于ios的表示图问题,UITableView

关于ios的表示图问题,UITableView

慕少森 2019-04-13 08:45:16
就是在删除某行的时候为什么要先删除数据模型中的实例例如以下例子:-(void)tableView:(UITableView*)tableViewcommitEditingStyle:(UITableViewCellEditingStyle)editingStyleforRowAtIndexPath:(NSIndexPath*)indexPath{[_itemsremoveObjectAtIndex:indexPath.row];//为什么要有以上代码,不要以上代码为什么不行,_items是一数组,而且放在后面这行代码的后面也不行这是为什么NSArray*indexPaths=@[indexPath];//还有这段代码能具体解释下吗[tableViewdeleteRowsAtIndexPaths:indexPathswithRowAnimation:UITableViewRowAnimationAutomatic];}
查看完整描述

2 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

首先解释下
[tableViewdeleteRowsAtIndexPaths:indexPathswithRowAnimation:UITableViewRowAnimationAutomatic];
这个是对界面的操作,用了点动画删除了你要删除的那一行,只是操作UI,不操作数据。
然后
[_itemsremoveObjectAtIndex:indexPath.row];
这个才是真正的操作数据。你这个_items应该是tableView的dataSource吧?只有在操作UI的时候把数据源(_items)里边的数据真正的删除了,在
[tableViewreloadData]
的时候,你之前删掉的数据才不会再重新显示出来啊。
至于那两行代码为什么必须是那个顺序,就不知道了...希望有高手来回答一下,我们学习一下~
回答中有不对的地方请各位批评指正
                            
查看完整回答
反对 回复 2019-04-13
?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

NSArray*indexPaths=@[indexPath];
这行代码新建了一个数组指针,指向传过来的下标。注意,这只是个指针,对其的操作会影响到indexPath
如果你在下面那行中将object删去,那么指针指向的indexPath也会受到影响,因而之后再调用indexPath的时候,其值已经发生改变。建议你在这两行代码之中,在日志里输出indexPath的值(或者row的值),看看是否发生了变化。
                            
查看完整回答
反对 回复 2019-04-13
  • 2 回答
  • 0 关注
  • 347 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号