Ответ
Запуск iOS-приложения — это последовательный процесс, управляемый системой:
- Загрузка бинарника – Система загружает исполняемый файл приложения и связанные динамические библиотеки (dylibs).
- Инициализация Runtime – Загружается и настраивается Objective-C/Swift runtime (регистрация классов, категорий, констант).
- Точка входа
main()– Вызывается стандартная C-функцияmain, которая запускаетUIApplicationMain.UIApplicationMain( argc, argv, nil, // principalClassName (обычно nil для стандартного UIApplication) NSStringFromClass(AppDelegate.self) // delegateClassName ) - Создание UIApplication – Система создает единственный экземпляр
UIApplication(или его подкласса). - Загрузка интерфейса – Если в Info.plist указан
Main storyboard file base name, система загружает его и создает initial view controller. - Жизненный цикл AppDelegate – Вызывается ключевой метод делегата:
application(_:didFinishLaunchingWithOptions:) -> Bool - Запуск Run Loop – Приложение переходит в активное состояние (
applicationDidBecomeActive(_:)), и главный поток начинает обрабатывать события в run loop.