簡體   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