0

我有相当大量的数据,我想将其划分为自定义部分,用于基于某些键路径的部分和其他一些条件的其他部分。所以我想出了子类的想法NSFetchedResultsController。这个子类应该提供在其返回数组的NSFetchedResultsController方法中返回部分的灵活性。如果我可以通过自己的符合协议的类来实现,然后在 section 方法中传递对象的自定义数组,我想我可以完成我的任务。-(NSArray*)sectionsid<NSFetchedResultsSectionInfo>fetchedResultsController

有没有办法NSFetchedResultsSectionInfo在您自己的类中实现,然后在fetchedResultsController子类中返回此类对象的自定义数组?还是有一些图书馆可以做到这一点?

编辑

让我描述一下我想要实现的目标。我有联系人模型作为 NSManagedObject 子类。这个实体有一个称为状态的属性,它可以是未知的、已知的和无法识别的。现在,我希望对这些联系人进行分区,以使所有未知联系人都出现在一个分区中,而身份不明的联系人也应该出现在另一个不同的分区中。现在,所有其他已知联系人应根据联系人姓名位于不同的部分。如何才能做到这一点 ?

我的表格视图应填充为;

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 中使用的属性。

  • 设计一个正确排序的方案。将所有排序和计算逻辑放入类实现文件的自定义 getter 中sectionIdentifier。例如,您可以简单地使用在大写字母“A”之前排序的两个字符,这可能是您的常规节标题中的第一个。你也可以把它变成一个数字,比如 1 和 2 表示你的前两个部分,3+ 表示字母表中的第一个字母。

  • 解码您的方案titleForHeaderInSection以显示所需的内容。

我最近为一个客户做了这个,他有一个非标准编码方案,用于指示一些营销细分的大量联系人列表。部分标识符的数据也是从几个不同的属性中提取的。

于 2012-12-13T17:01:18.273 回答