【问题标题】:Bridging Header issue - 'MyClass' is unavailable: cannot find Swift declaration for this class桥接头问题 - “MyClass”不可用:找不到此类的 Swift 声明
【发布时间】:2015-11-25 13:28:22
【问题描述】:

我已经访问过这个链接 -

MyClass is unavailable: cannot find Swift declaration for this class - Release Build Only

Adding Linked or Embedded Swift Framework: 'MyClass' is unavailable: cannot find Swift declaration for this class

Swift: using private framework

但是以上链接都没有帮助我解决我的问题。

我正在使用objective-c开发一个应用程序,在应用程序中我正在集成ios-charts,其框架是用swift开发的。我已经合并了README文件中给出的项目。集成后,我创建了一个 MyClass.swift 文件,然后继承了 MyClass.swift 文件,该文件带有一个在 charts.framework 中定义的类。但这是一个错误

“类”不可用:找不到此类的 Swift 声明

有人帮我解决这个错误吗?有什么建议吗??

【问题讨论】:

  • 您解决了这个问题吗?

标签: ios objective-c swift bridging-header


【解决方案1】:

这可能是因为您可能正在为设备构建并为模拟器使用,反之亦然。 请检查这个。这是非常重要的事情。如果您为设备编译或构建框架,它将无法在模拟器上运行。

【讨论】:

  • 这是我嵌入的外部私有框架的问题
  • 所以我应该为设备和模拟器提供单独版本的框架?为什么会这样?
  • 是的@pvllnspk。您需要创建单独的版本。
【解决方案2】:

我解决此问题的方法是将框架的部署目标从我的设备更改为“通用 iOS 设备”,然后重新构建框架。

【讨论】:

    【解决方案3】:

    尝试在 MyClass 声明前添加@objc(即@objc class MyClass {...})

    【讨论】:

      【解决方案4】:

      我遇到了同样的问题,即当从“MyFramework”中包含的“MyClass”调用函数时,它报告“MyClass”不可用。原来是框架的iOS部署目标和调用它的应用程序不同。当我将两者设置为相同时,问题就消失了。

      【讨论】:

        【解决方案5】:

        此错误只是由于框架与您尝试运行它的构建不兼容..

        修复:-

        1) 从项目中删除框架

        2) 那么:-

        • 如果您正在运行模拟器,请转到您的框架项目并构建框架项目,从 iOS 模拟器列表(模拟器列表中的任何设备)中选择一个模拟器,然后将框架导入宿主项目

        • 如果您正在运行物理设备,请转到您的框架项目并选择“通用 iOS 设备”/物理设备(已连接)构建框架项目,然后将框架导入宿主项目

        现在应该可以正常工作了。希望这会有所帮助!

        【讨论】:

          猜你喜欢
          • 2016-05-03
          • 1970-01-01
          • 2015-07-03
          • 2015-12-03
          • 1970-01-01
          • 2015-10-28
          • 2014-07-31
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多