NScollectionView内の項目のインデックス
-
15-09-2020 - |
質問
私のコレクションビューでは、各項目のインデックスを生成する必要があります。アイテムが並べ替えられるので、このインデックスがその新しい位置で更新する必要があります。
管理されたNSArrayControllerのコアデータエンティティです。 私は可能な限り最も近い解決策がエンティティクラスにこのメソッドを実装し、次にそれをUIにバインドするために表現されたObject.DynamicIndex を使用しています。
- (NSNumber *) dynamicIndex
{
NSInteger r = [[[[self managedObjectContext] registeredObjects] allObjects] indexOfObject:self];
NSNumber *result = [NSNumber numberWithInt:r];
return result;
}
.
この解決策は最高のスケッチです。
誰でもNSCollectionViewでアイテムインデックスを生成または取得するためのモデル/メカニズムがありますか?
解決
まず、「エンティティ」と「インスタンス」の違い(そして適切に使用する)の違いを理解していることを確認してください。それはあなたの問題と他の人との解決策を通信することに違いをすべて得ます。
2番目:NScollectionViewItems ...いくつかのコンテナで保持されているそれぞれの「表現されたオブジェクト」について心配しないでください。
3番目:ディスプレイの順序はあなたのエンティティの永続的な属性になるか、それが後で何が起きているかもしれないかにかかわらず、アイテムが瞬間にどの位置になっているかを知る必要がありますか?重要な質問
4番目:コアデータは順序付けられたコレクションの概念を教えていません。これは、NSSQLitEStoreTypeなどのストアタイプをサポートします。ここでは、リスト全体をロードせずに、いくつかの項目(または1つ)にのみ障害がある場合があります。したがって、永続的なソート順を必要としている場合は、独自のものです。これを行うには、「SortOrder」というエンティティに属性を追加して番号の種類を付けます。
5次:上記の「注文コレクションなし」の課題のために、セットから構築されたアレイからの実体の特定のインスタンスのインデックスを見つけようとした試み、これは無限注文で失敗したことが失敗する。
6番目:アレイコントローラを使用しているため、ソート記述子を設定する必要があります。あなたの "Sortorder"キーを使いたいです。そのように、フェッチされたインスタンスは常にそれらの "SortOrder"によってソートされ続けるでしょう。 "
7番目と最後に: Array Controllerのセット/オブジェクトのセット/配列の任意のオブジェクトのインデックスを取得しようとしている場合は、-ArrangedObjectsで尋ねることができます。 'ソートされたコレクションのオブジェクトのインデックスを取得します。
助けを願っています。
あなたがあなたのアプリケーションで10.7以上をターゲットにしているなら、[NSManagedObject]は[NSManagedObject]を順番に順番に表示されます。] [1] [1]を使用します。-mutableOrderedSetValueForkey:NSorderEdetsセットを設定および取得します。 yay!