Я хотел бы измерить время, необходимое пользователю для выполнения задачи, например, в игре. Это просто: получите NSDate
начала и конца, а затем вычислите разницу.Как измерить прошедшее время игры, не учитывая время, когда приложение находится в фоновом режиме?
Однако, я хочу игнорировать время, которое приложение проводит в фоновом режиме, например, когда приходит телефонный звонок. Как мне это сделать? NSTimer
- это (более или менее) будильник. Мне нужен секундомер.
Я мог создать NSTimer
огонь, скажем, каждую секунду, и отсчет секунд, затем аннулирует таймер, когда приложение переходит в фоновый режим и возобновить его, когда приложение залез на передний план, но это кажется излишним.
Есть ли простой подход, который я пропустил?
Я не пользуюсь комплектом спрайтов. «Игра» продвигается только при вводе пользователя. Существует состояние «игра запущено», но нет игрового цикла, отличного от обычного цикла событий какао-ванили. –
@ JoeVölker в этом случае вы могли бы ответить на заявку, переместившись на фоновое уведомление. Не рассматривайте игру как одно событие, а как серию из 1 или более событий, разделенных такими вещами, как приостановка игры, перемещающейся на задний план и т. Д. ... затем измерять время для каждого события и добавлять их вместе. – Fogmeister