我使用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(我希望!)