我在使用NSSortDescriptor方面经验有限.
它是在一个键上排序,它工作正常.
但这是我现在需要的,我有一组数字,例如:
{(2,3),(44,5),(6,17),(33,7)……(173,21)}
我想根据给定函数myfunction(x,y)的值对对(x,y)进行排序.
制作三元组(x,y,z)有一个简单的想法,其中z将是myfunction(x,y)的计算,然后对三元组进行排序,但这不是我想要的.
它是在一个键上排序,它工作正常.
但这是我现在需要的,我有一组数字,例如:
{(2,3),(44,5),(6,17),(33,7)……(173,21)}
我想根据给定函数myfunction(x,y)的值对对(x,y)进行排序.
制作三元组(x,y,z)有一个简单的想法,其中z将是myfunction(x,y)的计算,然后对三元组进行排序,但这不是我想要的.
有没有正确的方法来使用NSSortDescriptor来完成我需要的工作?
感谢您提供任何信息.
解决方法
除非您使用SQLite存储将此排序描述符与Core Data一起使用,否则您可以在对象上创建一个transient属性,该属性表示z,即函数的计算.然后,您可以对该瞬态属性进行排序,它将生成您想要的结果,而不存储z值.
但是,如果您将Core Data与SQLite之类的存储一起使用,而整个存储内容不会被读入内存,则无法使用瞬态属性进行排序,您必须将z值实际存储在托管对象中才能实现您所描述的内容,或者将所有托管对象读入数组,然后在瞬态属性上对该对象数组进行排序…如果您只有有限数量的托管对象,那么这样就行了,但不是很好除此以外.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。