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

Does [NSDate distantPast] always give same value?

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

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

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

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

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

您不应使用 == 运算符测试 NSDate。只有当它是同一个实例时才会 return YES 。 您应该为此使用 isEqualToDate: 方法。

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

祝你好运。