即使plist中提供了“委托类名称”,也无法加载场景委托类

时间:2019-10-30 04:01:16

标签: swift ipados maccatalyst

我正在尝试编写一个支持多个窗口的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文件中的“ Delegate类名称”条目已填写,并具有值(不带引号)“ WTF?Viewer.SceneDelegate”。该类存在。为什么它无法加载?

我尝试了“ Delegate Class Name”值的几种变体,例如:

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

2 个答案:

答案 0 :(得分:0)

对于Info.plist中“代表类名称”的值,请使用:

$(PRODUCT_MODULE_NAME).SceneDelegate

答案 1 :(得分:0)

这是不正确的。正确的前缀为$(SWIFT_MODULE_NAME),因为系统需要知道Swift模块(如果您正在使用Swift语言创建委托)来从中加载类。

对于许多项目,$(PRODUCT_MODULE_NAME)与$(SWIFT_MODULE_NAME)相同。

在项目编译器设置中找到条目“ Swift Module Name”(即要使用的名称)。