//Gets the time right now
NSDate *now = [NSDate date];
//Stores the difference in seconds between when the test was started and now.
NSTimeInterval interval = [self.expires timeIntervalSinceDate:now];
if (interval == 0) {
...
}
条件不正确的原因是什么?
感谢。
答案 0 :(得分:6)
由于NSTimeInterval
只是double
,因此您可能会出现浮点舍入错误。尝试使用
if (abs(interval) < EPS) {
其中EPS
是一个足够小的常数。
或者,如果你想知道秒而不是毫秒,你可以将那个双截断为int。
但从您的代码判断,我认为您可能想要检查时间轴是否已经已过期,而不是它在此时间到期。后者的概率非常小。这应该可以解决问题。
if (interval < 0) {