Странный выпуск приложения для iPhone - PullRequest
0 голосов
/ 13 января 2011

Я реализую функцию безопасного пароля в приложении. Часть решения основана на примере кода PTPasscodeViewController, который можно найти на GitHub. У меня возникает проблема, когда приложение запускается впервые и вводится PIN-код, пользовательский интерфейс не обновляется с кружком в каждом поле. Если 4 цифры введенного PIN-кода неверны, мое сообщение не отображается. Как будто runloop не выполняется или что-то в этом роде. Если я введу правильный PIN-код, приложение будет разблокировано, как и ожидалось. Функциональность работает, но пользовательский интерфейс не обновляется.

Если приложение разблокировано, если я захожу в «Настройки» (в приложении) и изменяю пароль, точки отображаются нормально, и если во время подтверждения ПИН второй ПИН не совпадает с первым, пользовательский интерфейс также обновляется правильно. *

Фоновая многозадачность включена в этом приложении. На iOS 4.2.1, когда приложение снова становится активным, используется та же логика проверки PIN, что и при первом запуске приложения. Разница лишь в том, что на самом деле это не первая попытка, а возврат от фона. В этом случае логика проверки PIN-кода и пользовательский интерфейс работают правильно ... выполняется тот же код. Точки и любые сообщения отображаются правильно.

Однако на 3.1.2, поскольку многозадачность в фоновом режиме не поддерживается, приложение всегда запускается с нуля. Таким образом, каждый раз, когда приложение запускается, функциональность работает, но пользовательский интерфейс не обновляется должным образом.

У меня должно быть общее недопонимание чего-то здесь, но я не уверен, что я не понимаю. Кто-нибудь может указать мне правильное направление?

1 Ответ

0 голосов
/ 14 января 2011

Я решил эту проблему сам, и это было результатом отсутствия понимания того факта, что applicationDidBecomeActive также запускается после applicationDidFinishLaunchingWithOptions. По сути, код для отображения экрана проверки PIN-кода выполнялся дважды подряд при первом запуске приложения. Удаление запуска проверки PIN из applicationDidFinishLaunchingWithOptions и вызов его только в applicationDidBecomeActive исправили его.

...