t创建Master-Detail应用程序项目后,我在MasterViewController.m中替换了以下代码行,
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"timeStamp" ascending:NO];
与
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc]
initWithKey:@"timeStamp"
ascending:YES
comparator:^NSComparisonResult (id obj1, id obj2)
{
return NSOrderedSame;
}];
这是我对Apple代码模板所做的唯一更改。当我在Simulator 6.0上运行它时,代码在获取数据时崩溃......
if (![self.fetchedResultsController performFetch:&error]) {
使用objc_exception_throw。顺便说一句,这段代码适用于模拟器5.1。知道什么是错的吗?提前谢谢。
答案 0 :(得分:1)
基于Objective-C的排序描述符不能与获取请求一起使用。
来自“核心数据编程指南”:
...总而言之,如果您直接执行提取,则应该 通常不会添加基于Objective-C的谓词或排序描述符 获取请求。相反,你应该将这些应用于结果 获取。
顺便问一下,你真的想要一个让所有对象都相等的排序描述符吗?