从现在起测量时间间隔

时间:2011-05-26 20:57:05

标签: iphone sdk xcode4 nsdate nstimeinterval

任何人都知道或可以提供一些与“timeIntervalSinceNow”方法相关的示例代码...

我需要类似... time2(当应用程序进入前景时) - time1(当应用程序进入后台时)= time3(时间差)...这样我就可以使用此数字(pref in seconds)来计算应用程序处于后台时丢失的时间!!

我正在尝试创建日期对象,接收对象并在标签中显示/使用....

3 个答案:

答案 0 :(得分:4)

timeIntervalSinceNow告诉您NSDate与当前时间的偏移量。你想要timeIntervalSinceDate:

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

NSTimeInterval difference = [appEnteredBackground timeIntervalSinceDate: appEnteredForeground];

答案 1 :(得分: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对象。

答案 2 :(得分:4)

实际上,要回答原始问题myles,您可以使用timeIntervalSinceNow。 在下面的语句中,inputDate已初始化为NSDate并设置为某个日期(您可以尝试[NSDate *inputDate = [NSDate date];在当前日期和时间设置日期。

NSTimeInterval timeToAlert =[inputDate timeIntervalSinceNow];

下一行是将NSTimeInterval放入字符串的方法。

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

最后,app委托类通常可以编写代码来处理进出背景。祝你好运!