在 iOS 5 之前,我可以使用 ==
运算符来检查 earlierDate
的返回日期:
if ([aDate earlierDate:bDate] == aDate)
[someone doSomething];
但是现在,我必须这样做:
if ([[aDate earlierDate:bDate] isEqualToDate:aDate])
[someone doSomething];
为什么会这样?
实际上,问题在于使用 ==
与使用 isEqualToDate:
进行比较,而与 earlierDate:
调用关系不大.
最佳答案
你一直在使用指针比较(==
),现在你不得不使用对象的比较方法。这意味着在早期版本的 iOS 中,earlierDate:
方法将返回您之前传入的对象。现在,它似乎创建了一个新对象(具有与较早日期相同的数据)并返回它。
isEqualToDate:
方法是首选,因为它更合适,而且不太可能像您的指针比较那样中断。
关于objective-c - iOS 5 中 NSDate 的 earlierDate 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7860367/