繁体   English   中英

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

[英]Core Data sort by Date ascending then by nil

我想我已经知道答案了,但我还是要问这个问题......

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

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

我尝试在排序描述符中使用 NSComparisonResult 块,除了在实际启动它时遇到一些困难(可能是由于其他地方的一些逻辑 - 我在同一视图中切换不同的排序),我无法让它实际比较 null带有日期的键值。 我认为这是有道理的,因为其@"dueDate" 键为 null 的托管对象或多或少会被那些实际有要比较的对象的比较跳过。

在这一点上,我相信我唯一的选择是解决这个问题并将“无截止日期”记录设置为远在未来的日期,例如 3000 年 1 月 1 日。可能会显示 3000 年 1 月 1 日的任何地方,隐藏该值,就好像它实际上是 null。

这听起来正确和合理吗?

谢谢!

正如我在上面的评论中建议的那样,我解决了这个问题:[NSDate distinctFuture]。 到目前为止,它一直在我的应用程序中运行,我没有理由相信它会在未来停止以这种方式运行......甚至在遥远的未来。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM