- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Table View Controller,其中包含由 fetchResultsController 处理的 Formation 列表。
这是我的核心数据实体的样子:
我尝试按 dateRange
对我的 fetchResultsController 进行排序,如下所示:
// |fetchedResultsController| custom setter
- (NSFetchedResultsController *)fetchedResultsController {
if (_fetchedResultsController != nil) {
return _fetchedResultsController;
}
_fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:self.fetchRequest managedObjectContext:self.mainManagedObjectContext sectionNameKeyPath:@"dateRange" cacheName:kFormationsFetchedCacheName];
_fetchedResultsController.delegate = self;
return _fetchedResultsController;
}
// |fetchRequest| custom setter
- (NSFetchRequest *)fetchRequest {
if (_fetchRequest != nil) {
return _fetchRequest;
}
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"student == %@", self.currentStudent];
NSSortDescriptor *dateDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"dateRange" ascending:NO];
NSSortDescriptor *nameDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:NO];
_fetchRequest = [[NSFetchRequest alloc] initWithEntityName:kBSFormation];
_fetchRequest.predicate = predicate;
_fetchRequest.sortDescriptors = [NSArray arrayWithObjects: dateDescriptor, nameDescriptor, nil];
return _fetchRequest;
}
当我尝试添加第一个 Formation
时,一切都很好,但是对于接下来的,我有这些错误:
2013-01-30 22:43:08.370 [7202:c07] -[BSDateRange compare:]: unrecognized selector sent to instance 0x81781a0
2013-01-30 22:43:08.371 [7202:c07] CoreData: error: Serious application error. Exception was caught during Core Data change processing. This is usually a bug within an observer of NSManagedObjectContextObjectsDidChangeNotification. -[BSDateRange compare:]: unrecognized selector sent to instance 0x81781a0 with userInfo (null)
2013-01-30 22:43:08.372 [7202:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[BSDateRange compare:]: unrecognized selector sent to instance 0x81781a0'
如果我评论这一行:NSSortDescriptor *dateDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"dateRange"ascending:NO];
,它可以工作,但我的 TableView 很乱,因为 sectionNameKeyPath
设置为 dateRange
有人正在弄清楚这里的问题是什么? :/
最佳答案
您要告诉它根据 dateRange
关系进行排序。但是 dateRange
是与 BSDateRange
的关系,Core Data 如何比较它们?它应该使用 from
,还是 to
,或者它们的某种组合?您不能只告诉它对这样的对象进行排序,因为排序应该如何工作并不明显。
相反,首先弄清楚排序甚至意味着什么。然后适本地修改您的排序描述符。例如,如果您决定排序取决于 from
值,请更改排序描述符以使用 from
的关键路径:
NSSortDescriptor *dateDescriptor = [NSSortDescriptor
sortDescriptorWithKey:@"dateRange.from"
ascending:NO];
如果您需要根据from
和to
进行排序,请使用多个排序描述符。
关于ios - NSFetchResultsController 错误与 sortDescriptors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14614627/
我有一个歌曲实体和一个播放列表实体。 播放列表可以有多个歌曲,歌曲可以链接到多个播放列表。 我有一个 ListToSongs 实体,它维护将歌曲添加到播放列表的顺序。我没有在 ios5 中使用“有序关
我有一个 NSArrayController (A) 将其绑定(bind)到另一个 NSArrayController (B),我试图对 NSArrayController (B) 进行排序,但不起作
我有一个 Table View Controller,其中包含由 fetchResultsController 处理的 Formation 列表。 这是我的核心数据实体的样子: 我尝试按 dateRa
我有一个 NSTableView,其列绑定(bind)到 NSArrayController。 表格 View 显示电子邮件列表: 标记未读 主题 附件大小 用户可以单击“附件大小”列对列表进行排序,
如何设置我的 fetchedResultsController.sortDescriptors 以包含使用键路径的排序描述符,例如 @"foo.name"? 干杯 尼克 最佳答案 尽管NSSortDe
let dateSort = NSSortDescriptor(key: "created", ascending: false) fetchRequest.sortDescriptors = [da
我正在从核心数据中获取。我有一个 bool 值属性,它与时间属性一起保存。我需要返回 bool 为真的日期数组。我无法让它工作,我要么得到一组空日期,要么崩溃。 func datesWithCompl
我有一个 NSArray与 strings不遵循模式的对象,例如: D C A Z X。 当我尝试对类似的 array 进行排序时按升序,我得到: A C D X Z。 这不是我想要的结果,我需要实现
我在用 Swift 编写的 Cocoa 应用程序中使用基于 View 的 NSTableView,并希望在两个表列上实现排序功能。但是,在 Objective-C 中,您可以通过先在 Attribut
我有一个类型为“Restaurant”的数组,它的 NSSet 为“Rating”。评分有一个 ID 和一个值。 我想按 ID 为 01 的评分从高到低对餐厅的数组进行排序。 类似下面的内容,但如何在
两种获取 NSManagedObject 排序数组的方法,哪一种更好?或者它们之间有什么性能差异吗? /// Method 1: - use sortDescriptors let fetchRequ
我是一名优秀的程序员,十分优秀!