Objective c 比较日期

Objective c 比较日期,objective-c,cocoa-touch,if-statement,nsdate,Objective C,Cocoa Touch,If Statement,Nsdate,在我的应用程序中,我需要比较一个if-else周期中的三个日期。我有开始日期、结束日期和测试日期。我想检查的是测试日期是否在开始日期和结束日期之间 if (testDate >= startDate && testDate <= endDate) { 如果(testDate>=startDate&&testDate您无法将Objective-C对象与C中的任何布尔运算符进行合理比较。您将比较它们的地址,而不是它们的值 查看NSDate类的文档,特别是-compare

在我的应用程序中,我需要比较一个if-else周期中的三个日期。我有开始日期、结束日期和测试日期。我想检查的是测试日期是否在开始日期和结束日期之间

if (testDate >= startDate && testDate <= endDate) {

如果(testDate>=startDate&&testDate您无法将Objective-C对象与C中的任何布尔运算符进行合理比较。您将比较它们的地址,而不是它们的值


查看
NSDate
类的文档,特别是
-compare:
方法。

您无法将Objective-C对象与C中的任何布尔运算符进行合理的比较。您将比较它们的地址,而不是它们的值


查看
NSDate
类的文档,特别是
-compare:
方法。

日期可以这样进行比较。但是,您必须首先调用
timeIntervalSince1970
将日期转换为整型值。在这种情况下,它将为您提供类型为
NSTimeInterval
的数值

另一个选项是使用在
NSDate
对象上调用的
compare:
方法

在这种情况下,将一个日期与另一个日期进行比较,将得到一个在类参考中详细说明的结果,如下所示:

  • 接收人和其他日期完全相等, 删除名称

  • 接收器的时间晚于另一个日期,因此取消接收

  • 接收器在时间上早于另一个日期,因此被取消接收


日期可以这样比较。但是,您必须首先调用
timeIntervalSince1970
将日期转换为整型值。在这种情况下,它将为您提供类型为
NSTimeInterval
的数值

另一个选项是使用在
NSDate
对象上调用的
compare:
方法

在这种情况下,将一个日期与另一个日期进行比较,将得到一个在类参考中详细说明的结果,如下所示:

  • 接收人和其他日期完全相等, 删除名称

  • 接收器的时间晚于另一个日期,因此取消接收

  • 接收器在时间上早于另一个日期,因此被取消接收


搜索显示了什么?是的,您正在比较对象地址。您必须使用对象支持的比较方法。搜索显示了什么?是的,您正在比较对象地址。您必须使用对象支持的比较方法。