Swift&Objective-C项目 - 生成-Swift.h错误 - 无法找到UIViewController的接口声明

Ric*_*est 11 xcode objective-c language-interoperability ios swift

我有一个项目使用Swift生成的Bridging Header并正确设置项目(名称中没有空格,使用模块,在我的.mm文件中预先声明Swift类,删除派生数据,进行干净重建等等). ).Bridging Header生成正常,但自动生成的-Swift.h中有错误.更糟糕的是,这些错误发生在AppDelegate和ViewController的生成(在项目创建 - Swift)版本中,通常可以正常编译.-Swift.h中的错误是:

  • @interface AppDelegate : UIResponder <UIApplicationDelegate>
    >>无法找到'UIResponder'的接口声明,'AppDelegate'的超类
    >>找不到'UIApplicationDelegate'的协议声明
  • @interface ViewController : UIViewController
    >>无法找到'UIViewController'的接口声明,'ViewController'的超类

我搜索了Stack Overflow和网络,找不到解决这个问题的任何答案.还有其他人有这个吗?或者,有没有办法可以标记我的AppDelegate和ViewController类,因此Xcode 不会尝试为那些Swift类创建Objective-C存根,因为我实际上并不需要它们?

小智 12

只需添加

#import <UIKit/UIKit.h>
Run Code Online (Sandbox Code Playgroud)

之前

#import <YourProject-Swift.h>
Run Code Online (Sandbox Code Playgroud)

在.mm文件中.对我来说它有帮助.


小智 7

我有同样的问题,发现...

-Swift.h最适合Objective-C,而不是Objective-C++(.mm)

所以我使用Objective-C类来连接Swift类.您也可以随时在Objective-C类中加载Objective-C++类.