我有一个包含Swift和Objective-C的框架。我在Objective-C类#import "MyFrameworkHeader.h"
的顶部有声明,我认为它会将我的swift代码暴露给我的Objective-C类但是编译器仍然说这些符号不存在,我怎么能暴露我的Swift在同一个Framework中我的Objective-C类的类?
答案 0 :(得分:7)
标题下:"将Swift导入Objective-C"
答案 1 :(得分:2)
要让Objective-C注册您的swift代码,您应该进入构建设置,然后查看/设置项目名称,同时查看兼容性标题选项是否选中是。
之后设置只需进入你的文件并输入#import" -Swift.h"。我不认为您可以使用swift和Objective-C导入单个文件,您可以一次导入所有swift文件。确保所有swift文件都没有错误或者您将收到有关此标头未定义的错误,这一点非常重要。您可能必须构建项目而没有错误,文件至少生成一次。
答案 2 :(得分:0)
我认为您正在寻找的是 Bridging Header 。 这是一个将Objective-C标头导入到Swift中的文件。
有两种方法可以制作一种方法(据我所知):
在我看来,最简单的方法是将现有的Obj-C文件添加到swift项目中,反之亦然。 Xcode应该询问您是否要自动配置桥接头。选择yes,Xcode应该创建一个名为'project name'-bridging-header.h的文件。在此文件中,导入您的文件,因此#import "MyFrameworkHeader.h"
应该这样做。
使用File>制作您自己的空文件新文件(Cmd + N)>来源>头文件。无论如何都要调用它,然后像上一个一样导入文件。在它工作之前,您必须在项目设置的字段中输入桥接头文件的名称(在第一个选项中,Xcode将为您执行此操作)。