Я создал простое приложение с использованием Xcode 7 Beta 2. Приложение просто содержит классы MyAppDelegate
, MyViewController
, MyMain.storyBoard
и MyLaunchScreen.storyboard
. После перекомпиляции приложения с помощью бета-версии Xcode 7 появляется сообщение об ошибке "Запуск экранов может не устанавливать пользовательские имена классов". Любые предложения?
XCode 7: экраны запуска могут не устанавливать пользовательские имена классов
Ответ 1
Обратите внимание, что экран запуска не является полностью настраиваемым контроллером вида. Вы не можете указать имя пользовательского класса в раскадровке и ожидать, что система предоставит вам возможность выполнить код на этом этапе, вызвав viewDidLoad. Помните, что приложение еще не запущено.
Запустить экранные ограничения
- Система загружает файл экрана запуска перед запуском приложения, которое создает некоторые ограничения на то, что он может содержать (некоторые из которых могут заставить вас вернуться к статическим файлам изображений):
- Приложение еще не загружено, поэтому иерархия представления не существует и система не может вызывать какой-либо пользовательский код настройки контроллера просмотра, который может быть у вас в приложении (например, viewDidLoad).
- Вы можете использовать только стандартные классы UIKit, чтобы вы могли использовать UIView или UIViewController, но не пользовательский подкласс. Если вы попытаетесь установить собственный класс, в Xcode вы получите неверную конфигурационную ошибку.
- Файл экрана запуска может использовать только базовые представления UIKit, такие как UIImageView и UILabel. Вы не можете использовать UIWebView.
- Если вы используете раскадровку, вы можете указать несколько контроллеров просмотра, но снова есть некоторые ограничения. Например, вы можете встроить контроллеры представлений в контроллер навигации или панели вкладок, но более сложные классы классов, такие как UISplitViewController, не работают (по крайней мере, пока).
- Локализация файла экрана запуска в настоящий момент не имеет никакого эффекта. Базовая локализация всегда используется, поэтому вы, вероятно, захотите избежать текста на экране запуска.
- Вы не можете указать разные файлы экрана запуска для iPad и iPhone. Это может быть проблемой, если у вас есть значительно разные интерфейсы для этих устройств, так как вы можете делать только с авто макетами и классами размера.
Если вы развертываете iOS 7, вам все равно придется включать статические файлы изображений запуска. Вы можете включить как файл экрана запуска, так и статические изображения запуска. Устройства, такие как iPhone 6, работающие под управлением iOS 8, будут использовать файл экрана запуска, в то время как устройства iOS 7 будут возвращаться к изображениям запуска.
Для получения дополнительной информации нажмите здесь
Ответ 2
Это простой ответ, но что-то я сделал и даже не знал об этом. Я думаю, что с iOS 7, теперь есть main.storyboard и launchscreen.storyboard. Я невольно пытался создать свой начальный функциональный экран на экране запуска screen.storyboard. Это нет.
Надеюсь, это поможет и счастливое кодирование!
Ответ 3
Пройдите через контроллеры View в Main.storyboard и убедитесь, что у вас нет того, который и установлен в пользовательский класс:
и установлен флажок "Контроллер начального просмотра":
Вы можете делать только одно или другое. Как-то у меня был "Контроллер начального вида" по-прежнему проверен по ошибке, и мне потребовалось некоторое время, чтобы охотиться на это!
Ответ 4
Недавно я создал приложение, использующее бета-версию Xcode 8, но не смог отправить его в магазин приложений с помощью бета-версии. У меня было такое же сообщение об ошибке: "Запуск экранов может не устанавливать пользовательские имена классов" и несколько других.
Мое решение: перейдите к файловому инспектору основной раскадровки и снимите флажок "Использовать как запуск". Простой, не так ли? Надеюсь, это сработает и для вас.