我正在寻找一种方法来唯一标识 UITableViewCells 的实例,即使它们已通过DequeueReusableCell(string identifier) 被回收(出列) - 无需子类化或使用容器对象。
所以基本上,当我创建一个新单元格时,我想使用这个单元格的唯一 id 作为键来将另一个相关对象存储在字典中。稍后,当单元格被回收/出队时,我想从字典中读取相关的反对。我完全知道回收的单元格可以放置在表中的任何索引路径中,并且可能(很可能)包含比以前更多的数据 - 另一个对象确实与单元格实例相关,而不是索引路径。
必须避免与对象失去关系。获得的 id 必须不惜一切代价与创建单元格时使用的相同。
这以前是通过生成一个随机数并将其存储为单元格的标签来实现的。但是,这些标签可能会发生冲突(当两次生成相同的随机数时),我只想将避免冲突作为最后的手段。所以我正在寻找更好的方法。
我查看了ClassHandle、Handle和SuperHandle属性。出队中唯一保持一致的似乎是 ClassHandle。
为此目的使用 ClassHandle 属性是否安全?如果没有,还有哪些其他选择?