2011-05-26 51 views
3

人知道或能提供與「timeIntervalSinceNow」方法一些示例代碼...測量時間間隔因爲現在

我需要這樣的東西......時間2時(應用程序eneters前景) - 時間1(當應用程序進入後臺)= time3(在時間上的差異)...這是我可以使用這個數字(pref以秒爲單位)來計算我在應用程序已經在背景中失去的時間!

我有想嘗試創建日期對象,接收對象和顯示/使用的標籤....

回答

4

timeIntervalSinceNow告訴您從當前時間偏移的NSDate的。你想timeIntervalSinceDate:

NSDate *appEnteredForeground = ...; 
NSDate *appEnteredBackground = ...; 

NSTimeInterval difference = [appEnteredBackground timeIntervalSinceDate: appEnteredForeground]; 
+0

口口聲聲說「聯合國大學編輯變量「差異」「我不知道如何從差異中獲得價值並將其放入標籤中。順便說一句,我應該在代表的這樣做?非常感謝幫助夥計! – myles 2011-05-26 22:02:12

+3

聽起來你可能需要退後一步,在深入研究UI設計之前學習C和Objective-C的基礎知識。 :) – 2011-05-26 23:24:40

4

可以計算與timeIntervalSinceDate:方法兩個日期之間的區別:

//When app enters background: 
self.backgroundDate = [NSDate date]; //this should be a property 
//... 
//When the app comes back to the foreground: 
NSTimeInterval timeSpentInBackground = [[NSDate date] timeIntervalSinceDate:self.backgroundDate]; 

NSTimeInterval簡直就是double一個typedef,它在幾秒鐘內測量真實。 [NSDate date]用當前日期和時間實例化一個NSDate對象。

+0

如何爲backgroundDate創建屬性? – myles 2011-05-26 21:24:49

+0

[Objective-C編程語言 - 聲明屬性](http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocProperties.html%23//apple_ref/doc/uid/TP30001163-CH17) – omz 2011-05-26 21:29:19

4

其實,要回答你原來的問題,myles,你可以使用timeIntervalSinceNow。 在下面的語句中,inputDate已被初始化爲NSDate,並設置一些日期(你可以只嘗試[NSDate *inputDate = [NSDate date];在當前日期和時間設定日期。

NSTimeInterval timeToAlert =[inputDate timeIntervalSinceNow]; 

下一行是把一種方式這NSTimeInterval爲一個字符串。

NSMutableString *timeinterval = [NSMutableString string]; 
[timeinterval appendFormat:@"%f",timeToAlert]; 

最後,應用程序委託類通常在那裏可以編寫代碼來處理進出背景的。祝你好運!