我正在使用NSSortDescriptor按升序对NSDate对象进行排序。但是,我需要nil日期位于列表的底部,而目前它们位于顶部。
答案 0 :(得分:9)
最后我决定使用nil值并不是一个好主意,如果我想将nil值显示在升序列表的底部,我应该将日期设置为[NSDate distantFuture]并检查这个在显示它们之前。事实证明,这在应用程序中也具有更多的语义意义。
答案 1 :(得分:7)
看起来你已经有了一个解决方案,但是对于其他任何想要使用nil NSDates的人,并将它们放在底部,我使用下面的代码,我按降序排序,然后反转发送给它的对象的顺序比较
_sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"dueDate"
ascending:NO
comparator:^NSComparisonResult(id obj1, id obj2) {
return [obj2 compare:obj1];
}];
答案 2 :(得分:6)
当然,我应该使用
initWithKey:ascending:selector:
并编写我自己的比较选择器