Ответ 1
Убедитесь, что в классе AppDelegate имеется следующее объявление свойства:
var window: UIWindow?
Я только что разработал приложение, но при запуске в симуляторе консоль отладчика говорит:
The app delegate must implement the window property if it wants to use
a main storyboard file.
У меня есть файл делегата приложения. Что означает сообщение, и как я могу заставить приложение работать?
Убедитесь, что в классе AppDelegate имеется следующее объявление свойства:
var window: UIWindow?
На всякий случай, если кто-то сталкивается с этим снова и программирует в Objective-C, убедитесь, что у вас есть эта строка кода в вашем файле AppDelegate.h
:
@property (strong, nonatomic) UIWindow *window;
Если вы запустите свой проект на iOS 13.0 раньше, в этом случае вы столкнетесь с проблемой. Из-за iOS 13 и более поздних версий приложение запускается не так, как в предыдущих версиях.
В iOS 13 и более поздних версиях используйте объекты UISceneDelegate
для реагирования на события жизненного цикла в приложении на основе сцен
В iOS 12 и более ранних версиях используйте объект UIApplicationDelegate
для ответа на события жизненного цикла.
Когда вы запускаете приложение в iOS 12 и более ранних версиях, тогда класс UIApplicationMain
ожидает свойства окна в вашем классе AppDelegate
, как у SceneDelegate
. Таким образом, ваша проблема будет решена, если вы добавите следующую строку в ваш класс AppDelegate
.
var window: UIWindow?
Для Objective-C
@property (strong, nonatomic) UIWindow *window;
Вы можете найти больше здесь Жизненный цикл приложения.
Нет, Xcode использует автоматическое назначение, если вы определили файл Основного интерфейса, в разделе Цель приложения> вкладка Общие> Информация о развертывании> Поле главного интерфейса.
Просто перетащите текстовое поле, например, на Main.storyboard.
В XCode он создан и назначен в "Единственном Приложении Представления", по умолчанию.