桥接标题问题 - “MyClass”不可用:无法找到此类

时间:2015-08-31 13:30:47

标签: ios objective-c swift bridging-header

我访问了这个链接 -

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文件,然后使用charts.framework中定义的Class继承了MyClass.swift文件。但这是一个错误上升

  

'Class'不可用:找不到此类的Swift声明

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

5 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:3)

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

我遇到了同样的问题,即在调用来自' MyClass'包含在' MyFramework'中,它会报告' MyClass'不可用。事实证明,它是框架的iOS部署目标,并且调用它的应用程序是不同的。当我将两者设置为相同时,问题就会消失。

答案 4 :(得分:0)

此错误仅是由于该框架与您尝试在其上运行的构建不兼容。

修复:-

1)从您的项目中删除框架

2)然后:-

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

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

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