Предпосылки: До Xcode 4.2 новые проекты, созданные с использованием любого из шаблонов, содержали MainWindow.xib и, следовательно, передавали nil в качестве четвертого аргумента UIApplicationMain (). Начиная с Xcode 4.2, все шаблоны создают экземпляр делегата приложения, передавая строку класса в качестве четвертого аргумента, и не создают окно приложения в xib.
Выполнить эту настройку в 4.2 тривиально, и, конечно, она работает, как ожидалось: создайте xib, установив для параметра File's Owner значение UIApplication, и подключите делегат, укажите его в Info.plist, четвертый аргумент nil в main ().
Вопрос: Почему Apple поощряет создание экземпляра делегата приложения и построение UIWindow в коде сейчас, а не «старым способом»? Каковы преимущества?
Соображения: Я бы ожидал, что это новое поведение шаблона будет, если вы решите использовать раскадровку как способ управления пользовательским интерфейсом, но если вы снимете флажок «Использовать раскадровки», я бы ожидал старого прохода. nil-and-use-MainWindow.xib шаблон.
Этот вопрос был задан окольным путем здесь , но ответы на обсуждение немного скудны.