Я понимаю, что вы пытаетесь определить, является ли данный NSDate
сегодняшним днем.Для этого вам не нужно принимать во внимание часы, минуты и т. Д. При сравнении.Как насчет этого:
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:(NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit) fromDate:[NSDate date]];
NSDate *today = [calendar dateFromComponents:components];
components = [calendar components:(NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit) fromDate:otherDate];
NSDate *dateOne = [calendar dateFromComponents:components];
if([today isEqualToDate:dateOne]) {
...
}
Метод isEqualToDate:
не будет выполнять это задание, потому что оно проверяет, точно ли данная дата точно равна получателю (с точностью до секунды).
Оператор ==
также не подходит для этого, поскольку он сравнивает указатели с объектами, проверяет, указывают ли указатели на одну и ту же ячейку памяти.