2012-07-05 38 views
1

我從YYYY-MM-DD NSString格式的服務器中獲得一堆日期,我們立即將其粘貼到核心數據中進行訪問。但是,我需要使用大於date的謂詞來執行排序的提取請求。如果日期是字符串而不是日期對象,我怎麼能說「日期大於X」?按日期排序核心數據類型爲NSString

AKA,下面就爲的NSString,而不是NSDate的

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(start <= %@) AND (name == %@)", currentTime, name]; 

回答

0

代替存儲日期爲字符串,然後有對字符串進行排序,與NSDateFormatter解析的日期,然後將它們存儲在覈心NSDates數據,那麼你可以相對容易地用它們做各種謂詞。

+0

在我們的數據對象中有超過500k的日期,我寧願不把它們全部從核心數據中取出,用NSDateFormatter鍵入並恢復它們。這是最後的手段。 – Eric 2012-07-05 18:53:11

+0

@Eric我同意Jesse Crocker。您應該將日期作爲NSDate存儲在coredata數據庫中。如果您的日期超過500K,請快速創建一個腳本來轉換日期(Mac Foundation應用程序),方法是首先加載舊數據庫,使用NSDateFormatter將字符串轉換爲日期,然後將其存儲到新的數據庫中數據庫。 – CoreCode 2012-07-06 01:16:09

+0

我們嘗試了24小時,找不到更好的選擇,感謝您的幫助! – Eric 2012-07-06 19:29:18