2012-09-19 175 views
6

在我的模型我有日期屬性,我把它[NSDate date],但斷言越來越像核心數據NSPredicate日期

NSPredicate *predicate = [NSPredicate predicateWithFormat: 
           @"date==%@ ,date]; 

回報諾丁山。我知道問題是當我設置[NSDate date]它也存儲時間和NSPredicate總是返回空數據。有什麼辦法可以將"date==%@"部分轉換成僅查找日期?

+0

做這樣的日期的謂詞的問題是,這將做一個亞毫秒的比較;你必須*正好*相同的時刻,而不僅僅是同一個日曆日。 –

+0

這個「你必須有完全相同的時間」使我想到了這個想法來處理日期時間:在存儲日期之前將日期的時間全部設置爲0。並且從模型中檢索時將日期值與時間一起傳遞爲0。 –

回答

18
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(date >= %@) AND (date <= %@)", startDate, endDate]; 
+0

感謝您的回覆,但我有一個約會(今天)。 endDate應該是明天嗎? – Ercan

+0

其你的選擇..不給結束日期,刪除部分。只傳遞startDate。 NSPredicate * predicate = [NSPredicate predicateWithFormat:@「(date> =%@)」,startDate]; – cancerian

+0

只設置startDate,如果我在日期前2天給它返回2天前和今天之間的所有記錄。我修正了在選定的日期添加1天,並使用endDate的第一個響應。 – Ercan