Проблемы с ранее датой NSDate в iOS 5 - PullRequest
4 голосов
/ 22 октября 2011

До iOS 5 я мог использовать оператор ==, чтобы проверить возвращаемую дату из earlierDate:

if ([aDate earlierDate:bDate] == aDate)
    [someone doSomething];

Но теперь я должен сделать это:

if ([[aDate earlierDate:bDate] isEqualToDate:aDate])
    [someone doSomething];

Почему это так?

На самом деле проблема заключается в использовании == для сравнения и использования isEqualToDate:, а в вызове earlierDate: меньше.

1 Ответ

6 голосов
/ 22 октября 2011

Вы использовали сравнение указателей (==), и теперь вам нужно использовать метод сравнения объекта. Это означает, что в более ранних версиях iOS метод earlierDate: возвращал объект, который вы передали ранее. Теперь он, кажется, создает новый объект (с такими же данными, как и у более ранней даты) и возвращает его.

Метод isEqualToDate: предпочтителен, так как он более уместен и с меньшей вероятностью сломается, как это делало сравнение с указателем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...