gpt4 book ai didi

ios - 具有降序的 NSSortDescriptor

转载 作者:行者123 更新时间:2023-11-29 13:04:45 26 4
gpt4 key购买 nike

我正在使用 FetchedResultsController 来执行我的提取,我希望它按降序对对象进行排序。如果我在创建 NSSortDescriptor 时使用自定义比较器 block ,我会收到错误消息:“不支持的 NSSortDescriptor(不支持比较器 block )”。我不想获取我的项目并将它们存储在一个数组中,对它们进行排序,然后使用它们,因为这违背了使用 FetchedResultsController 的目的。如何创建一个按降序排序的 NSSortDescriptor?

此外,为什么 NSSortDescriptor 的框架中甚至有一个方法允许使用比较器 block ,如果它实际上不允许使用它?或者只是您不能将它们用于 fetchrequests?

最佳答案

SQLite 存储不支持 NSSortDescriptor 基于 block 的方法。持久存储文档 ( https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CoreData/Articles/cdPersistentStores.html ) 是这样的:

The SQL store, on the other hand, compiles the predicate and sort descriptors to SQL and evaluates the result in the database itself. This is done primarily for performance, but it means that evaluation happens in a non-Cocoa environment, and so sort descriptors (or predicates) that rely on Cocoa cannot work

您将不得不使用 -[NSSortDescriptor sortDescriptorWithKey:ascending:] 方法。

基于 block 的方法可用于对数组和其他内存对象进行排序,我认为从内存中可以看到二进制核心数据存储,因为对象在技术上也在内存中

关于ios - 具有降序的 NSSortDescriptor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18927309/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com