Не удалось загрузить класс делегата сцены, даже если в plist указано «Имя класса делегата». - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь написать приложение для iPadOS / macOS Catalyst, которое поддерживает несколько окон. При запуске я получаю сообщение об ошибке журнала:

[SceneConfiguration] Info.plist configuration "Default Configuration" for UIWindowSceneSessionRoleApplication contained UISceneDelegateClassName key, but could not load class with name "WTF? Viewer.SceneDelegate".

Запись «Имя класса делегата» в файле Info.plist заполняется и имеет значение (без кавычек) «WTF? Viewer. SceneDelegate». Класс существует. Почему он не может его загрузить?

Я пробовал несколько вариантов значения «Имя класса делегата», например:

WTF?\ Viewer.SceneDelegate
WTF\?\ Viewer.SceneDelegate
WTF?\\ Viewer.SceneDelegate
WTF\\?\\ Viewer.SceneDelegate

Ответы [ 2 ]

0 голосов
/ 01 ноября 2019

Это неверно. Правильный префикс - $ (SWIFT_MODULE_NAME), поскольку системы должны знать модуль Swift (если вы создаете делегата с использованием языка Swift) для загрузки класса из.

Для многих проектов $ (PRODUCT_MODULE_NAME) - этоаналогично $ (SWIFT_MODULE_NAME).

Найдите в настройках компилятора проекта запись «Имя модуля Swift», то есть имя, которое нужно использовать.

0 голосов
/ 30 октября 2019

Для значения «Имя класса делегата» в Info.plist используйте:

$(PRODUCT_MODULE_NAME).SceneDelegate
...