【问题标题】:iOS Simulator 6.0 crashes with custom sort descriptoriOS Simulator 6.0 使用自定义排序描述符崩溃
【发布时间】:2012-09-27 18:57:33
【问题描述】:

t创建了一个Master-Detail Application项目后,我在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。知道有什么问题吗?提前致谢。

【问题讨论】:

    标签: core-data ios6 nssortdescriptor


    【解决方案1】:

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

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

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

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

    【讨论】:

    • @CodeMonkey:我无法解释为什么它以前有效并且不再有效。我只知道文档声明您不应该使用基于 Objective-C 的排序描述符来获取请求。原因是(我认为)过滤和排序已经由 SQLite 层完成。
    猜你喜欢
    • 1970-01-01
    • 2018-04-21
    • 1970-01-01
    • 1970-01-01
    • 2012-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-03
    相关资源
    最近更新 更多