Я храню атрибут даты в Базовых данных, используя datePicker на iPhone. Затем я хочу сравнить дату, соответствующую определенной дате, используя ==, но не могу заставить ее работать. Хотя больше и меньше, чем кажется, работает нормально.
Сначала я сохранял дату непосредственно из DatePicker, который также включал информацию о времени. Поэтому я использовал NSCalendar, чтобы убрать время и просто сохранить дату.
Точно так же я беру rhs предиката и запускаю его через NSCalendar, чтобы извлечь только дату и выполнить сравнение, и я все еще не могу заставить работать ==.
Попытался создать NSLog для даты, хранящейся в CoreData, и сравниваемой даты, и они выглядят совершенно одинаково
2010-06-19 00:00:00 -7: 00
Будут оценены любые указатели.
EDIT:
Я пытаюсь выполнить сравнение в CoreData, используя NSEqualToPredicateOperatorType, переданный в
+ (NSPredicate *)predicateWithLeftExpression:(NSExpression *)lhs rightExpression:(NSExpression *)rhs modifier:(NSComparisonPredicateModifier)modifier type:(NSPredicateOperatorType)type options:(NSUInteger)options
с указанием lhs в качестве ключевого пути к entity.dateAttribute
и rhs является [NSExpression expressionForConstantValue: myDate];
PS: у меня был вышеуказанный код, а затем я понял, что myDate состоит из компонента времени, поэтому я изменил приведенный выше код, чтобы извлечь только день, месяц и год и использовать его для отправки его в NSExpression.
Аналогичным образом, сохраняя дату, я убедился, что извлекаю только дату, месяц и год и передаю ее в CoreDate, эффективно делая время 00:00:00 (надеюсь!)