objective-c - iOS 5 中 NSDate 的 earlierDate 问题

标签 objective-c ios5

在 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/

相关文章:

ios - 在退出调用方法之前显示不会更新

iOS - 如何从 Controller 重定向到新屏幕?

objective-c - 导航栏中清晰的背景图片

iphone - iOS App 在模拟器上运行但不在设备上运行?

iphone - 如何从 HTML 页面获取 PDF (UIWebView)

iphone - IOS 7 - 添加覆盖崩溃应用程序

iphone - 动画时更改 UIActivityIndi​​cator 的颜色

ios - 在 uitextfield 上显示弹出窗口

objective-c - Cocoa Touch - 向 Xbox 360 好友发送消息

objective-c - OpenGL ES 不会绘制