如何比较负载的时间/日期

时间:2011-11-18 00:07:12

标签: objective-c cocos2d-iphone

我正在用cocos2d创建一个游戏。在这个游戏中有一个能量棒,这个能量棒每5分钟恢复活力。我希望这种复兴能够在应用程序的运行中发挥作用。

我正在思考它,而我所能想到的就是在NSUserDefaults中保存应用程序最后一次终止的日期/时间,并将其与重新打开的新日期进行比较并将其除以复兴时间并添加正确累积的能量累积量...但是我不知道如何将一个字符串与一个字符串进行比较+ 10小时或者我的复兴时间。基本上我想要跟踪应用程序是打开还是关闭所花费的时间。

1 个答案:

答案 0 :(得分:4)

这很简单,您可以从以下时间获取当前时间(以毫秒为单位):

NSTimeInterval now = [NSDate timeIntervalSinceReferenceDate];

将此值存储在默认值中。它实际上是double,因此您可以存储它:

[[NSUserDefaults standardUserDefaults] setDouble:now forKey:@"lastClosed"];

然后,您可以使用上述NSDate类方法获取应用程序重新启动的时间,并将它们进行比较:

NSTimeInterval now = [NSDate timeIntervalSinceReferenceDate];
NSTimeInterval timeFromUserDefaults = [[NSUserDefaults standardUserDefaults] doubleForKey:@"lastClosed"];
int numSecondsPassed = (timeFromUserDefaults - now);