[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,保存标志等)...
祝你好运。
[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,保存标志等)...
祝你好运。