美文网首页
IOS全局记录当前的 cell 会发生奇怪的值对不上.

IOS全局记录当前的 cell 会发生奇怪的值对不上.

作者: 西湖钓鱼王 | 来源:发表于2023-03-21 14:09 被阅读0次
全局记录当前点击的cell
这样获得当前点击的cell

此时 假设此时取的cell indexPath = [0,a]

这样的方式记录的cell是不可信的.currentCell 记录了当前点击的cell的地址如: 0x00898728
因为当tableView 刷新后

self.tableView.reloadData()

所有的cell 会重新刷新并被重用.
虽然currentCell 还是指向地址如: 0x00898728
但此时 地址如: 0x00898728 的cell 可能被 indexPath [0,x]的cell 重用
一旦“x”不是“a”那么如果此时去判断 currentCell 的值将是 ‘x’的cell的值.
此时的判断 将不再正确.如取得 cell.index 就是 [0,x] 导致后续逻辑不可靠

如何解决呢. 我暂时想到的 有两个办法:
1:再currentCell的判断被消费掉之前不能 tableView.reloadData()
2:以indexPath 去做 记录.这样可以获得的cell的地址 可能不一样,但是 cell的值是可靠的.

以上就是困扰了我一个多小时才找到的 “bug”
灵感:swift 结构体是值类型.当取的一个结构体时,当原 结构体改变时取的结构值不会跟着改变.

相关文章

网友评论

      本文标题:IOS全局记录当前的 cell 会发生奇怪的值对不上.

      本文链接:https://www.haomeiwen.com/subject/bzjmrdtx.html