我有两个表 - 主表和详细信息 - 彼此相关(一个主表 - 许多详细信息)
我想显示 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/