【问题标题】:FetchResultsController sorting issueFetchResultsController 排序问题
【发布时间】:2013-05-14 10:20:28
【问题描述】:

我有一个使用 NSSortDescriptor 初始化的 NSFetchResultsController,它根据 localizedCaseInsensitiveCompare: 方法进行排序。

实体按他们的姓氏排序,但是其中一些没有指定他们的姓氏,因此,char 170(ASCII)被设置为他们的姓氏(不要问我为什么,源代码是这样做,我宁愿不改变它)。排序后,这些“没有姓氏”的人会显示在表格视图的顶部。我希望他们能走到最后。

在我的情况下似乎无法使用特定的 NSSortDescriptor(我正在使用 FRC),我在这里有什么选择?

[编辑] 比较器块或自定义比较器方法不适用于 NSFetchResultsController

【问题讨论】:

    标签: ios nsfetchedresultscontroller nssortdescriptor


    【解决方案1】:

    您的选择受到限制,因为排序描述符需要能够与 SQLite 数据存储一起使用。

    您应该编辑数据模型,以便拥有可以排序的属性。具体如何计算值取决于您,但属性不能是临时的。我建议你:

    1. 在您的 NSManagedObject 子类中实现 willSave 以创建/更新排序数据
    2. 或者,使您的排序数据成为依赖键(使用KVO,再次在您的NSManagedObject 子类中)

    您的排序数据可能很简单:

    self.sortValue = (self.lastName == 170 in ASCII ? @"ZZZZZZZZZZZZZZZ" : lastName)
    

    【讨论】:

      猜你喜欢
      • 2011-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-22
      • 2017-03-30
      • 2011-12-06
      • 1970-01-01
      相关资源
      最近更新 更多