NSDate在iOS 5中的早期日期问题

时间:2011-10-22 14:51:44

标签: objective-c ios5

在iOS 5之前,我可以使用==运算符检查earlierDate的返回日期:

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

但是现在,我必须这样做:

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

为什么会这样?

实际上,问题在于使用==进行比较而不是使用isEqualToDate:,而不是使用earlierDate:来电。

1 个答案:

答案 0 :(得分:6)

您一直在使用指针比较(==),现在您必须使用对象的比较方法。这意味着在早期版本的iOS中,earlierDate:方法将返回您之前传递的对象。现在,它似乎创建了一个新对象(与早期日期具有相同的数据)并返回该对象。

首选isEqualToDate:方法,因为它更合适,并且不像指针比较那样破坏。