Привет, пользователи Stackoverflow,
Я пытаюсь оптимизировать время запуска приложения для iphone (т. Е. Сделать первый вид как можно скорее, как только приложение откроется). Раздел, который я хочу оптимизировать, - это инициализация стека базовых данных (контекст управляемого объекта, координатор постоянного хранилища и т. Д.) В делегате приложения. Я подумала о двух способах решения этой проблемы и задаюсь вопросом, что вы думаете (плюсы / минусы) относительно этих решений (или других, которые вы можете иметь)?
Примечание: Базовый стек данных инициализируется в делегате приложения по причинам, указанным в Где разместить «Базовый стек данных» в приложении Cocoa / Cocoa Touch
Решение 1 (мой предпочтительный):
Инициализация стека основных данных в фоновом потоке из делегата приложения. Это позволит ускорить инициализацию приложения и быстрее отобразить окно / представление.
Решение 2:
Ленивый экземпляр Базового стека данных, когда контроллеру представления требуется доступ к Базовому стеку данных. Мне нравится эта идея, однако, базовый стек данных должен быть инициализирован в делегате приложения, а затем передан в каждом контроллере представления, который требует этого.
Примечание : Это решение нарушает соглашение об инициализации основного стека данных в делегате приложения.
С уважением,