ios - 核心数据 - NSFetchedResultController 按其他表字段对数据进行排序

标签 ios core-data nsfetchedresultscontroller nsfetchrequest nssortdescriptor

我有两个表 - 主表和详细信息 - 彼此相关(一个主表 - 许多详细信息)

我想显示 Details 表中的记录列表,按 Master 表中的“日期”字段排序。

如何在以下代码中操作NSSortDescriptor?或者对我的问题还有其他建议吗?

代码:

NSFetchRequest *fr = [[NSFetchRequest alloc] init];
NSEntityDescription *e = [NSEntityDescription entityForName:@"Details"
                                     inManagedObjectContext:context];
[fr setEntity:e];

NSSortDescriptor *sd = [[NSSortDescriptor alloc]
                                       initWithKey:@"date" // ---- PROBLEM
                                         ascending:YES];

NSArray *arrSD = [[NSArray alloc] initWithObjects:sd, nil];
[fetchRequest setSortDescriptors:sortDescriptors];

self.frc = [[NSFetchedResultsController alloc]
                         initWithFetchRequest:fr
                         managedObjectContext:context
                           sectionNameKeyPath:nil
                                    cacheName:nil];

NSError *err;
[self.frc performFetch:&err];

现在,我希望使用“日期”字段对数据进行排序,该字段是Master表的列名称。

最佳答案

首先您需要设置主表和明细表之间的关系。

然后,您将能够以下一种方式使用排序描述中归档的其他表..您的关系名称不能是集合(在一个主 - 许多详细信息关系中,只有当您为详细信息表创建排序描述符)

您的排序描述将如下所示:

NSSortDescriptor *sd = [[NSSortDescriptor alloc]
                                       initWithKey:@"master.date"
                                         ascending:YES];

关于ios - 核心数据 - NSFetchedResultController 按其他表字段对数据进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27738613/

相关文章:

ios - 对 iPhone 4S 和 iPhone 5 使用相同的 .xib 文件

iphone - 有关 iPhone 应用程序结构的问题 - 核心数据、 View 、模态视图等

core-data - SWIFT 中的核心数据 + NSFetchedResultsController

ios - 使用 nsfetchedresults Controller 设置分段表头

ios - 点击时 UICollectionView 单元格更改背景

iphone DatePickerView - PickerView - 模态视图还是弹出窗口?什么是最好的?

ios - 以编程方式创建 UINavigationBar

ios - ios中sqlite的最大大小限制是多少

ios - 可以使用核心数据在 iOS/核心图形中撤消/重做吗?

ios - UITableView 1070 中的断言失败