Ответ 1
У меня было такое же предупреждение и исправлено, выполнив следующие действия.
Я использовал раскадровку. Моя раскадровка включала контроллер навигации и контроллер вида (который был контроллером корневого представления этого контроллера навигационного представления). В моем случае это было вызвано одной из двух причин:
Приложение не было настроено правильно для сохранения состояния Необходимо установить следующие параметры:
-
В приложении делегат переопределить приложение: willFinishLaunching. В этом методе можно просто вернуть ДА.
-
Для каждого вида контроллеров и представлений (включая контроллеры просмотра навигации и контроллеров табуляции) установите идентификатор восстановления
-
В делегате приложения, выберите, переопределяя
shouldSaveApplicationState
иshouldRestoreApplicationState
Если это предупреждение все же произошло, вы можете проверить, как вы запускаете приложение в Xcode. Я запускал свое приложение в симуляторе Xcode и должен был следовать определенной последовательности, чтобы вызвать сохранение состояния.
- запуск приложения в симуляторе Xcode
- В симуляторе Xcode нажмите кнопку Главная ", чтобы поместить приложение в фоновый режим. Метод
encodeRestorableStateWithCoder
контроллера вида следует называть - вернитесь к Xcode, нажмите кнопку остановить ", чтобы прервать симуляцию
- В симуляторе Xcode дважды нажмите кнопку "Главная", а затем удалите приложение из переключателя приложений и
- вернитесь к Xcode, запустите приложение еще раз.
Это предупреждение не должно появляться. Когда я использовал другие последовательности, я увидел это предупреждение. Когда я отлаживал свое приложение на своем устройстве с помощью Xcode, я следовал той же последовательности и не видел предупреждения.
Я думаю, что это предупреждение указывало, что, поскольку Xcode не смог закончить приложение правильно, файл восстановления состояния был неправильно сохранен на диске.