由于项目需要,做一个UITableView
来实现删除功能。
功能思路其实不难:
交代一下,我自己要实现的效果:
1.TableView是分组的。
2.点击删除按钮后,某行被删除。
写完,大概功能,运行:
出现:
*** Assertion failure in -[UITableView_endCellAnimationsWithContext:],/SourceCache/UIKit_Sim/UIKit-2372/UITableView.m:1070
libc++abi.dylib: handler threw exception
原因:
1.在调用deleteRowsAtIndexPaths:方法前,要确保数据为最新。也就是说,先将要删除的数据从数据源中删除。
2.分组和分组中行数是变动的,不能写成死的!
3.如果是分组,你会发现很怪的现象:当一个分组中,有多条数据时,你删除其中一条,正确;当一个分组中,你要删除唯一的一条时,仍然会报出如上的错误!
本人,就是百思不得其解。反复调试,数据已经保持最新了的。
在网上搜了很多,却没有满意答案。
灵感闪过!~~~~
删除某个分组中的最后一条数据时,分组数,和行数都要变。这时候,只调用了deleteRowsAtIndexPaths方法。也就是说,只对行数进行了操作,但是没有对变动的分组进行操作!
查看帮助API,找到这么一个方法:deleteSections:方法!
加上去,在删除某个分组中最后一条记录时,将该分组也删除!
搞定!搞定!
最后,贴一下,实现的关键思路:
见:https://blog.csdn.net/oqqQuZi1234567/article/details/8946583