NSFetchedResultsController“乱序部分名称”

Posted

技术标签:

【中文标题】NSFetchedResultsController“乱序部分名称”【英文标题】:NSFetchedResultsController "out of order section name' 【发布时间】:2012-10-09 18:04:51 【问题描述】:

我正在使用MagicalRecord 来获取我的数据。在我的应用程序中,我有一个联系人列表,这些联系人被分组到联系人组中。我正在分组UITableView 中显示这些联系人组。

例如,我有以下(这是我所期望的):

Default Groups  // section header
[Everyone]      // cell row
[Favourites]    // cell row

My Group        // section header
[Coworkers]     // cell row

有时我的小组会搞混:

Default Groups  // section header
[Everyone]      // cell row
[Coworkers]     // cell row

My Group        // section header
[Favourites]    // cell row

我用来排序和分组的每个联系人组名称和组类型。组类型是整数。当我检查他们的属性时,他们确实有正确的组类型。

我的 FRC 如下所示:

fetchedResultsController = [ContactGroup fetchAllSortedBy:@"groupName"
                                                ascending:YES
                                            withPredicate:nil
                                                  groupBy:@"groupType"
                                                 delegate:self];

我看到以下错误:

CoreData: error: (NSFetchedResultsController) The fetched object at index 2 has an out of order section name '1. Objects must be sorted by section name'
+[MagicalRecord(ErrorHandling) defaultErrorHandler:](0x2eefb8) Error: The fetched object at index 2 has an out of order section name '1. Objects must be sorted by section name'
+[MagicalRecord(ErrorHandling) defaultErrorHandler:](0x2eefb8) Error Message: The operation couldn’t be completed. (Cocoa error 134060.)
+[MagicalRecord(ErrorHandling) defaultErrorHandler:](0x2eefb8) Error Domain: NSCocoaErrorDomain
+[MagicalRecord(ErrorHandling) defaultErrorHandler:](0x2eefb8) Recovery Suggestion: (null)

如果我需要提供更多详细信息,请告诉我,此时我有点难过,不能 100% 确定该怎么做。

【问题讨论】:

【参考方案1】:

没用过MagicalRecord,可以设置多个排序条件吗?

我假设它使用 groupBy: 作为部分名称,所以在这种情况下,我将有两个排序描述符,一个用于“groupType”,第二个用于“groupName”。

这将按照正确的顺序对部分进行排序,然后按照正确的顺序对部分内的所有内容进行排序。

【讨论】:

以上是关于NSFetchedResultsController“乱序部分名称”的主要内容,如果未能解决你的问题,请参考以下文章

在 Core Data 应用程序中调用 performFetch 后,是不是需要手动更新表视图?