2011-02-09 102 views
1
//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) { 
    ... 
} 

爲什麼條件不會成立的任何原因?檢查NSTimeInterval是否等於0

謝謝。

回答

6

由於NSTimeInterval只是一個double,您可能會有浮點舍入誤差。嘗試使用類似的東西

if (abs(interval) < EPS) { 

其中EPS是一個足夠小的常量。或者,如果您想知道秒而不是毫秒,則可以將該double截斷爲int。

但從您的代碼判斷,我認爲您可能想要檢查時間軸是否已經過期,而不是它在此時過期。後者的可能性非常小。這應該做的伎倆。

if (interval < 0) {