1

t创建主从应用程序项目后,我在 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。顺便说一句,此代码适用于 Simulator 5.1。知道有什么问题吗?提前致谢。

4

1 回答 1

1

基于 Objective-C 的排序描述符不能用于获取请求。

来自“核心数据编程指南”:

...总而言之,如果您直接执行 fetch,则通常不应将基于 Objective-C 的谓词或排序描述符添加到 fetch 请求中。相反,您应该将这些应用于获取的结果。

顺便说一句,您真的想要一个使所有对象相等的排序描述符吗?

于 2012-09-27T19:31:32.933 回答