UITableViewCells のインスタンスがDequeueReusableCell(string identifier)を介してリサイクル (デキュー) された後でも、サブクラス化やコンテナー オブジェクトの使用なしで一意に識別する方法を探しています。
基本的に、新しいセルを作成するときは、このセルの一意の ID をキーとして使用して、別の関連オブジェクトをディクショナリに格納します。後で、セルがリサイクル/デキューされたときに、関連するオブジェクトを辞書から読みたいと思います。リサイクルされたセルがテーブル内の任意のインデックス パスに配置される可能性があり、(ほとんどの場合) 以前よりも他のデータが含まれている可能性があることを完全に認識しています。他のオブジェクトは実際にはインデックス パスではなく、セル インスタンスに関連しています。
オブジェクトとの関係を失うことは避けなければなりません。取得された ID は、セルが作成されたときに使用されたものと必ず同じでなければなりません。
これは、以前は乱数を生成し、それをセルのタグとして保存することで実現されていました。ただし、これらのタグは衝突する可能性があり (同じ乱数が 2 回生成された場合)、衝突回避は最後の手段としてのみ実装したいと考えています。だから私はより良い方法を探しています。
ClassHandle、Handle、およびSuperHandleプロパティを見てきました。デキュー間で一貫性を保っているのは ClassHandle だけのようです。
この目的で ClassHandle プロパティを使用しても安全ですか? そうでない場合、他にどのようなオプションがありますか?