Всякий раз, когда вы видите 0x8badf00d
, это означает, что вас убивает сторожевой таймер запуска.Ваше приложение занимает слишком много времени, чтобы вернуться из -applicationDidFinishLaunching...
.Нормальные основные данные, связанные с этим:
- Попытка импортировать данные в
-applicationDidFinishLaunching...
- Попытка выполнить миграцию из
-applicationDidFinishLaunching...
Чтобы решить эту проблему, вы должны изменить свой запуск.Создание базового стека данных никогда не должно выполняться в -applicationDidFinishLaunching...
.Вместо этого позвольте -applicationDidFinishLaunching...
закончить, а затем встать в стек основных данных.Если миграция необходима (вы можете проверить это довольно легко), тогда предоставьте пользователю интерфейс, информирующий его о задержке, а затем начните его.
В любом случае вам нужно вернуться с -applicationDidFinishLaunching...
каккак можно быстрее, вы должны только создавать элементы пользовательского интерфейса в этом методе;Вы не должны получать доступ к Базовым данным на этом этапе.