gpt4 book ai didi

iphone - 按方法的返回值对对象进行排序

转载 作者:行者123 更新时间:2023-12-01 19:27:12 27 4
gpt4 key购买 nike

我最近在尝试对一组对象进行排序时遇到了一些问题。

我要排序的对象是 NSManagedObject 的子类。
我想按“global_index”对对象进行排序,但这不是我模型中的属性。它只是一个 setter/getter -(NSInteger)globalIndex {...}每个对象都实现。在这个方法中,我做了一些复杂的计算,这不能用简单的排序描述符来完成。

现在,我的问题是:有没有办法制作 NSSortDescriptor 对对象进行排序 返回值 的一种方法?

我真的很想使用排序描述符,因为它是(IMO)利用 NSFetchedResultsController 的酷特性的唯一方法。或者有没有办法告诉 Controller 如何对获取的对象进行排序?像...- (NSArray *)sortObjects:(NSSet *)objects {...}
提前致谢!

最佳答案

根据Core Data Programming Guide ,

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. The supported sort selectors are compare: and caseInsensitiveCompare:, localizedCompare:, localizedCaseInsensitiveCompare:, and localizedStandardCompare: (the latter is Finder-like sorting, and what most people should use most of the time). In addition you cannot sort on transient properties using the SQLite store.



简单的解决方法是保存每个对象的顺序(当您需要在其他两个对象之间插入一个对象时,这很痛苦,但这是尝试在数据库中实现高效有序集合的问题)。

关于iphone - 按方法的返回值对对象进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6512792/

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