Как сохранить данные с задержкой? - PullRequest
2 голосов
/ 29 февраля 2012

Мне интересно, позволяет ли iOS делать следующее:

У меня есть игра-головоломка, и я работаю над сохранением данных, когда пользователь возвращается на домашний экран. Чтобы сделать это, используя NSNotificationCenter, у меня был один из моих игровых классов, чтобы наблюдать метод [UIApplication sharedApplication] * ApplicationWillResignActive , поэтому, когда это происходит, я сохраняю свое игровое состояние. Но если пользователь решит выйти во время анимации, игра сохранит среднее состояние, в котором значения модели все еще меняются, что часто приводит к сбоям. Мой вопрос: возможно ли как-то отложить процесс сохранения (даже если он находится в фоновом режиме), пока анимации не будут завершены (или некоторая переменная равна 1)?

Моя первая идея - создать запланированное событие с NSTimer , чтобы попытаться сохранить, пока все не будет установлено. Любые идеи были бы хорошы. Спасибо

Ответы [ 2 ]

2 голосов
/ 29 февраля 2012

Вы можете использовать performSelector:withObject:afterDelay:

// Call doSomething after a 1 second delay
[self performSelector:@selector(doSomething) withObject:nil afterDelay:1.0f]; 
1 голос
/ 29 февраля 2012

Вместо того, чтобы пытаться отложить сохранение, особенно в ApplicationWillResignActive, вы должны изучить, как остановить анимацию и записать ожидаемые конечные значения анимации.В зависимости от метода анимации (UIView статические методы, блочные, сторонние) обычно есть способ остановить их, и, поскольку вы определяете, что делает анимация, вы уже должны знать конечное состояние.

В случае блочной анимации: Как отменить UIViews блочную анимацию?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...