Я ищу способ уникальной идентификации экземпляров UITableViewCell даже после того, как они были переработаны (удалены из очереди) через DequeueReusableCell (идентификатор строки) - без создания подклассов или с использованием объекта контейнера.
Таким образом, в основном, когда я создаю новую ячейку, я хочу использовать уникальный идентификатор этой ячейки в качестве ключа для хранения другого связанного объекта в словаре. Позже, когда ячейка будет переработана / снята с производства, я хочу прочитать соответствующие возражения из словаря. Я полностью осознаю, что переработанная ячейка может быть помещена в любой путь индекса в таблице и может (скорее всего) содержать другие данные, чем прежде - другой объект действительно связан с экземпляром ячейки, а не путем индекса.
Следует избегать потери отношения к объекту. Полученный идентификатор должен любой ценой быть тем же, который использовался при создании ячейки.
Ранее это было достигнуто путем генерации случайного числа и сохранения его в качестве тега ячейки. Тем не менее, эти теги могут сталкиваться (когда одно и то же случайное число генерируется дважды), и я хотел бы только реализовать предотвращение столкновений в качестве крайней меры. Поэтому я ищу лучший путь.
Я смотрел ClassHandle , Handle и SuperHandle свойства. Похоже, единственным, кто остается последовательным среди дежурств, является ClassHandle.
Безопасно ли для этой цели использовать свойство ClassHandle? Если нет, какие еще варианты есть?