我在这里有以下代码:
https://github.com/tachang/ExpandCollapseTable
问题是在玩了一段时间之后,滚动和扩展后,我开始看到以下内容:
标题0重复两次。仅在滚动并展开/折叠各节之后才会发生这种情况。
我正在尝试找出可能导致此问题的原因。我有一些想法:
1)也许是比赛条件。我检查了存储扩展/折叠标志的变量,它已经是原子的(默认是原子的)。
2)我认为这可能是扩展/折叠时的关键部分,因此我将该区域包装在@syncrhonized代码块中。这似乎没有帮助。
3)我认为这可能是单元重用,并且垃圾回收算法可能没有清理旧的节头单元。我怀疑tapGestureRecognizer到处徘徊,从而由于指针悬空而阻止了垃圾收集。似乎并非如此。
这时没有想法。