首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >降阶NSSortDescriptor

降阶NSSortDescriptor
EN

Stack Overflow用户
提问于 2013-09-20 23:31:38
回答 1查看 1K关注 0票数 1

我使用一个FetchedResultsController来执行我的提取,我希望它按降序排序对象。如果在创建NSSortDescriptor时使用自定义比较器块,则会得到表示'unsupported NSSortDescriptor (comparator blocks are not supported)'的错误。我不想获取我的项目并将它们存储在数组中,对它们进行排序,然后使用它们,因为这违背了使用FetchedResultsController的目的。如何创建将按降序排序的NSSortDescriptor?

另外,为什么NSSortDescriptor框架中甚至有一个方法允许使用比较器块,如果它实际上不允许使用它呢?还是仅仅因为您不能将它们用于获取请求?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-20 23:39:11

sqlite存储不支持NSSortDescriptor的基于块的方法。持久存储文档(https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CoreData/Articles/cdPersistentStores.html)具有以下内容:

另一方面,SQL存储将谓词和排序描述符编译为SQL,并计算数据库本身中的结果。这主要是为了性能,但这意味着评估发生在非Cocoa环境中,因此依赖Cocoa的排序描述符(或谓词)无法工作。

您必须使用-NSSortDescriptor sortDescriptorWithKey:提升:方法。

基于块的方法可以用于排序数组和内存对象中的其他对象,我认为从内存中可以存储二进制Core数据存储,因为从技术上讲,这些对象也在内存中

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18927309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档