我使用iPhone上的datePicker在Core Data中存儲日期屬性。然後我想用==來比較匹配某個日期的日期,但是我無法使其工作。雖然大於和小於似乎工作正常。核心數據NSDate比較
起初我是直接從datePicker存儲日期,其中還包括時間信息。所以我用NSCalendar去掉了時間並且只是存儲日期。
同樣,我採用謂詞的rhs並通過NSCalendar運行它來提取日期並進行比較,我仍然無法使==工作。
試圖這樣做的時間的一個的NSLog被存儲在CoreData和日期進行比較,他們看起來完全相同 2010-06-19 00:00:00 -7:00
任何指針將理解。
編輯: 我試圖做使用NSEqualToPredicateOperatorType在CoreData比較傳遞到
+ (NSPredicate *)predicateWithLeftExpression:(NSExpression *)lhs rightExpression:(NSExpression *)rhs modifier:(NSComparisonPredicateModifier)modifier type:(NSPredicateOperatorType)type options:(NSUInteger)options
與LHS作爲的keyPath到entity.dateAttribute 和RHS是[NSExpression expressionForConstantValue:指明MyDate]。
PS:我有上面的代碼,然後意識到myDate包含一個時間組件,所以我修改了上面的代碼,只提取日,月和年,並用它將它發送到NSExpression。
同樣同時節省了時間,我確信,我只提取日期,月份和年份以及傳遞有效CoreDate使時間00:00:00(我希望!)