在iOS 5之前,我可以使用==
运算符检查earlierDate
的返回日期:
if ([aDate earlierDate:bDate] == aDate)
[someone doSomething];
但是现在,我必须这样做:
if ([[aDate earlierDate:bDate] isEqualToDate:aDate])
[someone doSomething];
为什么会这样?
实际上,问题在于使用==
进行比较而不是使用isEqualToDate:
,而不是使用earlierDate:
来电。
答案 0 :(得分:6)
您一直在使用指针比较(==
),现在您必须使用对象的比较方法。这意味着在早期版本的iOS中,earlierDate:
方法将返回您之前传递的对象。现在,它似乎创建了一个新对象(与早期日期具有相同的数据)并返回该对象。
首选isEqualToDate:
方法,因为它更合适,并且不像指针比较那样破坏。