【问题标题】:Why does my Swift bundle get the wrong principal class?为什么我的 Swift 捆绑包得到错误的主体类?
【发布时间】:2015-03-29 11:31:57
【问题描述】:

我创建了一个捆绑目标,它的Info.plist 文件指定一个非常具体的类(我们称之为PrincipalClass)应该是它的主要类。这个类是用 Swift 编写的,并且有 @objc 属性。 Info.plist 文件已正确复制到包中,我已经多次清理和重建项目。

但是,当我从我的 Swift 框架加载包时,它的主类是一个不同的类(我们称之为NotPrincipalClass)。它没有被标记为@objc,事实上,它应该在包的内部。我在调试器中检查了bundle.bundleURL,包中的Info.plist 文件确实说它应该是PrincipalClass;但是当我检查bundle.infoDictionary 时,NSPrincipalClass 属性将NotPrincipalClass 读取为字符串! (信息字典还包含Info.plist 文件未指定的几个键,例如DTCompiler 等。)

如果我完全删除NotPrincipalClass,我会得到另一个内部类,它仍然完全不是我的主要类。

我彻底检查了构建日志,除了编译时,我没有看到提到 NotPrincipalClass

什么可能导致这种情况?我能做些什么来解决它?

【问题讨论】:

    标签: swift nsbundle


    【解决方案1】:

    不知何故,使用它的限定名称(“PlugInNamespace.PrincipalClass”)解决了这个问题,但这让我非常怀疑,因为我有另一个不需要这个的插件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-29
      • 2021-11-02
      • 1970-01-01
      • 1970-01-01
      • 2014-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多