iOS, сравнивающая два одинаковых NSDate, не возвращает NSOrderedSame

#ios #nsdate

#iOS #nsdate

Вопрос:

В качестве заголовка я попробовал следующий простой код:

 NSDate *date1 = [NSDate date];
NSDate *date2 = [NSDate date];
if([date1 compare:date2] == NSOrderedSame)
 NSLog(@"two time same");
else
 NSLog(@"two time not same");
  

и результатом является:

 two time not same
  

Я этого не понимаю, может кто-нибудь дать мне несколько советов? Спасибо.

Комментарии:

1. Даты не совпадают.

Ответ №1:

это не одно и то же, потому что существует небольшая разница во времени создания объекта, просто попробуйте напечатать там значение в NSTimeInterVal , чтобы узнать лучше.

Пример:

 NSDate *date1 = [NSDate date];
NSDate *date2 = [NSDate date];

NSLog(@"date1 : %f", [date1 timeIntervalSince1970]);
NSLog(@"date2 : %f", [date2 timeIntervalSince1970]);
  

Вывод:

 date1 : 1404466511.638555
date2 : 1404466511.638558
  

и вы также можете увидеть разницу, используя метод

 - (NSTimeInterval)timeIntervalSinceDate:(NSDate *)anotherDate
  

Комментарии:

1. Добавлен пример, просто чтобы проиллюстрировать разницу.

2. Хорошо, большое спасибо, я не обращаю внимания на точность nsdate. Еще раз спасибо