iOS Swift项目,已经导入了Objective-C文件,我想将swift类导入到这个Objective-C中

iOS Swift project, already imported Objective-C file and I want to import a swift class into this Objective-C

本问题已经有最佳答案,请猛点这里访问。

我有一个Swift项目,我成功地在这个Swift项目中添加了一些客观的C类文件,比如objectiveClass.h,并且能够使用桥接头在项目中使用它。现在在objectiveClass.h类中,我要导入swift项目的swift类。我该怎么做?

我搜索了很多,但还没有找到任何答案。大多数问题都是关于如何将Objective-C类导入Swift项目,或者将Swift类导入Objective-C项目。但我的情况不同


很简单。只需在swift类前申报@objc public。这样地

1
2
3
@objc public class YourSwiftClass : NSObject {

}

现在在目标C类中使用#import"YourProjectName-Swift.h"。如果找不到上述文件,则会出现错误。别担心,只需运行一次项目。当您在运行时单击该文件时,您将看到"yourprojectname swift.h"的内容。现在您可以访问swift类的任何方法。


直接从AppleDoc。

When you import Swift code into Objective-C, you rely on an Xcode-generated header file to expose those files to Objective-C. This automatically generated file is an Objective-C header that declares the Swift interfaces in your target. It can be thought of as an umbrella header for your Swift code. The name of this header is your product module name followed by adding"-Swift.h".

大多数人不知道的是,xyz-Swift.h头文件将由xcode生成,您只需要相信这一点。起初我在搜索整个项目源文件夹,这个文件在哪里,找不到它。你只需要把它进口就行了。有时你会得到错误消息,比如xyz-Swift.h没有找到,清理你的项目,它会顺利工作。