核心数据按日期升序然后按nil排序

时间:2011-06-07 17:27:26

标签: ios sorting core-data

我想我已经知道了答案,但无论如何我都会问这个问题......

我有一个表格,我通过dueDate升序对行进行排序。有些记录有截止日期,有些则没有(无)。我更喜欢在没有截止日期之前显示所有具有截止日期的行。 示例:2011年1月1日; 2011年2月1日; 2011年6月1日;零;零;零

但是,默认排序将nil值放在第一位,如预期的那样: 零;零;零; 2011年1月1日; 2011年2月1日; 2011年6月1日

我尝试在排序描述符中使用NSComparisonResult块,除了实际遇到一些困难之外(可能是由于其他地方的某些逻辑 - 我在同一视图中切换不同的排序),我实际上无法得到它将空键值与具有日期的值进行比较。我认为这是有道理的,因为@“dueDate”键为null的托管对象或多或少被实际上要比较的对象的比较跳过。

此时,我认为我唯一的选择就是破解这一点,并将“无截止日期”记录设置为具有远期未来的日期,例如1月1日,3000日.1 / 1/3000日期的任何地方可能会显示,隐藏值,就好像它实际上是null。

这听起来是否合理?

谢谢!

1 个答案:

答案 0 :(得分:0)

我解决了这个问题,就像我在上面的评论中所建议的那样:[NSDate distantFuture]。到目前为止,它一直在我的应用程序中工作,我没有理由相信它将在未来......甚至遥远的未来停止工作。

在我通常使用nil值的地方,我将dat设置为remoteFuture,并在应用程序中根据该值进行过滤。