【发布时间】:2018-09-18 02:30:45
【问题描述】:
我有一个自定义对象,其中包含基于时间段的信息,例如属性 endCalYear、endMonth 和 periodLength,它们指示每个时间段的结束及其长度。
我想创建一个基于NSSortDescriptor 或其他排序方法,它结合了这三个属性并允许同时在所有三个键上对该对象进行排序。
例子:
EndCalYear endMonth periodLength (months) sortOrder
2012 6 6 1
2012 6 3 2
2012 3 3 3
2011 12 12 4
排序算法将完全取决于我自己的算法。
我如何编写这样的算法?
基于块的sortDescriptorWithKey:ascending:comparator: 方法在我看来不起作用,因为它只允许我指定一个排序键。但是,我需要同时对所有三个键进行排序。
关于如何解决这个问题的任何想法或想法?
谢谢!
【问题讨论】:
-
你能举一个输入和预期输出的例子吗?另外,我假设您将这些对象存储在 NSArray 中是否正确?
-
@Clever 错误:我已使用预期的排序顺序/输出更新了我的问题中的表格。你是对的,这些对象存储在
NSArray中,这是由NSFetchedResultsController请求产生的。如果排序可以与NSFetchedResultsController(例如NSSortDescriptor)结合使用,那就完美了。
标签: objective-c ios sorting comparison nssortdescriptor