0

かなり大量のデータをカスタム セクションに分割したいと考えています。これは、いくつかのキーパスに基づくセクションと、その他の条件に基づくセクションです。そこで、 をサブクラス化するというアイデアを思いつきましたNSFetchedResultsController。のこのサブクラスは、 の配列を返すNSFetchedResultsControllerメソッドでセクションを返す柔軟性を提供する必要があります。プロトコルに準拠した独自のクラスで実装し、オブジェクトのカスタム配列を のセクション メソッドで渡すことができれば、目的を達成できると思います。-(NSArray*)sectionsid<NSFetchedResultsSectionInfo>fetchedResultsController

独自のクラスに実装NSFetchedResultsSectionInfoし、そのようなオブジェクトのカスタム配列をfetchedResultsControllerサブクラスに返す方法はありますか? または、これを達成するためのライブラリはありますか?

編集

私が達成しようとしていることを説明しましょう。Contacts モデルを NSManagedObject サブクラスとして持っています。このエンティティには、状態と呼ばれる属性があり、不明、既知、および未識別の可能性があります。ここで、これらの連絡先を、すべての不明な連絡先が 1 つのセクションに表示され、未確認の連絡先が別の別のセクションに表示されるようにセクション化する必要があります。これで、他のすべての既知の連絡先は、連絡先の名前に従って異なるセクションにあるはずです。これはどのように行うことができますか?

私のテーブルビューは次のように取り込まれるべきです;

Unknown Contacts (sorted into a single section according to date )
  - 
  -
Known Contacts(A)(known contacts sorted into different sections according to the name)
  -
  -
Known Contacts(B)
  -
  -
  -
Known Contacts(C)
  -
  -
  -
  -
  -
  -
Known Contacts(Z)
 -
UnIdentified Contacts(sorted into a single section with first name)
  -
  -
  -
4

1 に答える 1

1

NSFetchedResultsControllerすでにこれを実装しています。

NSArray* sectionsArray = self.fetchedResultsController.sections;

特別なセクションを実装するには、Apple サンプル コードDateSectionTitlesの原則に従います。パターンは次のとおりです。

  • 新しい一時属性を作成しますsectionIdentifier。サンプル コードと同様に、primitiveSectionIdentifier管理対象オブジェクトのサブクラスにも属性を含めます。sectionNameKeyPathこれは、 FRC で使用する属性です。

  • 正しく並べ替えるスキームを考案します。すべての並べ替えおよび計算ロジックを、クラス実装ファイルのカスタム ゲッターに入れsectionIdentifierます。たとえば、大文字の "A" の前に並べ替えられる 2 つの文字を単純に使用することができます。これは、通常のセクション ヘッダーの最初の部分であると考えられます。最初の 2 つのセクションに 1 と 2、アルファベットの最初の文字に 3+ など、数字にすることもできます。

  • スキームをデコードしてtitleForHeaderInSection、目的のコンテンツを表示します。

私は最近、いくつかのマーケティング セグメンテーションを示す連絡先の大規模なリストに対して非標準のコーディング スキームを使用していたクライアントに対してこれを行いました。セクション識別子のデータも、いくつかの異なる属性から取得されました。

于 2012-12-13T17:01:18.273 に答える