サブタイトルやコンテナオブジェクトを使用せずに、DequeueReusableCell(string identifier)を介してリサイクル(デキュー解除)された後でも、UITableViewCellのインスタンスを一意に識別する方法を探しています。UITableViewCell固有の識別子ですか?
基本的には、新しいセルを作成するときに、このセルの一意のIDを別の関連オブジェクトを辞書に格納するキーとして使用したいと考えています。後で、セルのリサイクル/デキューのときに、関連するオブジェクトを辞書から読みたいと思います。 リサイクルされたセルは、テーブル内の任意のインデックスパスに置かれ、他のオブジェクトは実際にはインデックスインスタンスではなくセルインスタンスに関連している可能性があります。
オブジェクトとの関連性を失うことは避けてください。得られたIDは、セルが作成されたときに使用されたIDと同じでなければなりません。
これは以前は乱数を生成し、それをセルのタグとして保存していました。しかし、これらのタグは衝突する可能性があり(同じ乱数が2回生成された場合)、最後の手段として衝突回避を実装したいだけです。だから私はより良い方法を探しています。
私はClassHandle、HandleおよびSuperHandleのプロパティを見てきました。デキューの間で一貫性を保つ唯一のものは、ClassHandleのようです。
この目的でClassHandleプロパティを使用するのは安全ですか?そうでない場合は、他にどのようなオプションがありますか?
UITableViewCellをサブクラス化したくないという特別な理由がありますか?そうすることで、アプリケーションをもっと複雑にする可能性は非常に高くなります。なぜなら、セルに直接必要とするタイプの参照を格納し、それを気にする必要がないからです。非常に単純な継承クラスを作成しました。これは非常に柔軟性があり、これまでに直面していたすべてのシナリオで機能していたObjectタグを持っています。 –
AndroidおよびiOSバージョンのアプリでは、現在、辞書を使用して各セルの追加オブジェクトを保存しています(必要な場合)。私は単に一貫性を保っていきたいと思います。 – riha