我访问了这个链接 -
MyClass is unavailable: cannot find Swift declaration for this class - Release Build Only
Swift: using private framework
但上述链接都没有帮我解决问题。
我正在使用objective-c开发一个应用程序,在我正在集成ios-charts的应用程序中,其框架是在swift中开发的。我已经合并了README文件中给出的项目。集成后,我创建了一个MyClass.swift文件,然后使用charts.framework
中定义的Class继承了MyClass.swift文件。但这是一个错误上升
'Class'不可用:找不到此类的Swift声明
有没有人帮我解决这个错误?有什么建议??
答案 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设备” /物理设备(已连接)来构建框架项目,然后将框架导入主机项目中
现在应该可以正常工作了。希望这会有所帮助!