2011-06-07 102 views
2

我想我已經知道答案,但我要問的問題反正...核心數據按日期排序升序然後通過零

我在那裏我被上升的dueDate排序行的表。有些記錄有截止日期,有些不記錄(無)。我更喜歡在沒有的行之前顯示所有的行。 例如:2011年1月1日; 2011年2月1日; 2011年6月1日;零;零;無

但是,默認排序首先將nil值作爲預期: nil;零;零; 2011年1月1日; 2011年2月1日; 2011年6月1日

我嘗試使用排序描述符中的NSComparisonResult塊,除了有一些困難,實際上讓它觸發(可能是由於其他地方的某種邏輯 - 我在同一視圖中切換不同類型),我可以'讓它實際上將空值鍵與具有日期的值進行比較。我認爲這是有道理的,因爲其中的@「dueDate」鍵爲空的託管對象或多或少地通過比較而被實際上要比較的對象跳過。

在這一點上,我相信我唯一的選擇就是徹底破解這一點,並使「無應收日期」記錄設置爲將來有一個日期,例如3000年1月1日。凡是1/1/3000日期可能會顯示,隱藏該值,就好像它實際上爲空。

這聽起來合適嗎?

謝謝!

+0

我剛剛發現[NSDate distantFuture]。這將是一個可以接受的解決方法嗎?看起來遙遠的未來總是會是同一天 - 真的? – Cameron 2011-06-07 19:36:40

回答

0

我解決了這個問題,正如我在上面的評論中提出的那樣:[NSDate distantFuture]。到目前爲止,它一直在我的應用程序中工作,我沒有理由相信它會在未來......或甚至遙遠的將來停止這種方式。

在我通常會使用零值的地方,我將dat設置爲distantFuture,並根據應用程序的相應值進行過濾。

+0

聽起來像一個合理的解決方案。如果有人給出了反對票的理由,或者提供了更好的答案,那將會很有幫助。 – jk7 2016-02-08 22:00:41

相關問題