[NSDate distantPast]是否总是给出相同的值?

时间:2015-07-09 09:27:49

标签: ios objective-c nsdate

[NSDate distantPast]是否总是给出相同的值。我的方案是我想为属性分配一些过去的值,然后再用[NSDate distantPast]再次检查它。例如。

在某些代码处,我这样做了:
NSDate *myVar = [NSDate distantPast];

然后在稍后我想检查这是否仍然有效。

if(myVar == [NSDate distantPast]) {
    NSLog(@"Still Equal.");
} else {
    NSLog(@"Not equal now.");
}

如果没有,那么将过去的值存储为起始值的正确方法应该是什么。

1 个答案:

答案 0 :(得分:2)

您不应该使用NSDate运营商对==进行测试。仅当它是同一个实例时,它才会返回YES。 您应该使用isEqualToDate:方法。

对于你的Q,你不应该指望它会是同一个日期,尽管我猜它会是一样的。我认为你的第一个想法是更好(使用默认距离日期),即使其他解决方案应该更具可读性(保留为零,保存标志等)...

祝你好运。