Как сравнить время / дату при загрузке - PullRequest
1 голос
/ 18 ноября 2011

Я создаю игру в cocos2d. В этой игре есть энергетический батончик, и этот энергетический батончик омолаживается каждые 5 минут. Я хочу, чтобы это омоложение работало во всех прогонах приложения.

Я думал об этом, и все, что я мог придумать, это сохранить дату / время последнего завершения приложения в NSUserDefaults и сравнить его с новой датой после повторного открытия, разделить ее на время омоложения и добавить правильное количество накопленной энергии накопилось ... однако я не знаю, как сравнить строку со строкой + 10 часов или каково бы ни было мое время омоложения. По сути, я хочу отслеживать прошедшее время независимо от того, открыто приложение или закрыто.

1 Ответ

4 голосов
/ 18 ноября 2011

Это довольно просто, вы можете получить текущее время (в миллисекундах) из эпохи с помощью:

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...