Подтвердить что ты не робот

XCode 7: экраны запуска могут не устанавливать пользовательские имена классов

Я создал простое приложение с использованием Xcode 7 Beta 2. Приложение просто содержит классы MyAppDelegate, MyViewController, MyMain.storyBoard и MyLaunchScreen.storyboard. После перекомпиляции приложения с помощью бета-версии Xcode 7 появляется сообщение об ошибке "Запуск экранов может не устанавливать пользовательские имена классов". Любые предложения?

4b9b3361

Ответ 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, но не смог отправить его в магазин приложений с помощью бета-версии. У меня было такое же сообщение об ошибке: "Запуск экранов может не устанавливать пользовательские имена классов" и несколько других.

Мое решение: перейдите к файловому инспектору основной раскадровки и снимите флажок "Использовать как запуск". Простой, не так ли? Надеюсь, это сработает и для вас.

Вот образ того, что искать