Assertion failure in -[UITableView _endCellAnimationsWithContext:] swift

 

出现这个问题有两种情况

第一种比如删除,那你在删除的时候  ,数据源必须删除。 如果你不删除数据源,那numberOfRowsInSection方法Array的长度是没有变化的。tablew刷新的时候就会检测数据源的长度和tablew显示的条目是不是一样的。如果不一样就抛出Assertion failure in这个异常。

           tableView.beginUpdates()

            Array.remove(at: indexPath.row)

            tableView.deleteRows(at: [indexPath], with: .left)

            tableView.endUpdates()
    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return Array.count;
    }

增加条目也是一样的,那你在增加的时候  ,数据源必须增加。 如果你不增加数据源,那numberOfRowsInSection方法Array的长度是没有变化的。tablew刷新的时候就会检测数据源的长度和tablew显示的条目是不是一样的。如果不一样就抛出Assertion failure in这个异常。

            tableView.beginUpdates()
            Array.append(xxx)
            tableView.insertRows(at: [indexPath], with: .left)
            tableView.endUpdates()

第二种情况 如果有多个分组,分组内的数据源为0了  ,分组也要删除。tablew会检测你数据源的分组和table上显示的分组是不是一样的。如果不一样就抛出Assertion failure in这个异常。

            tableView.beginUpdates()
            Array.remove(at: indexPath.row)
            tableView.deleteRows(at: [indexPath], with: .left)
            tableView.deleteSections(IndexSet.init(arrayLiteral: indexPath.section), with: .left)
            tableView.endUpdates()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值