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

18 浏览
0 Comments

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

我有一个Swift项目,成功地将一些Objective C类文件(比如ObjectiveClass.h)添加到这个Swift项目中,并且能够在项目中使用它,使用桥接头文件。现在在ObjectiveClass.h类中,我想要导入Swift项目中的一个Swift类。我该怎么做呢?

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

0
0 Comments

问题的原因是在iOS Swift项目中,已经成功导入了一个Objective-C文件,并且想要将一个Swift类导入到这个Objective-C文件中。解决方法是需要使用Xcode生成的头文件来将Swift代码暴露给Objective-C。这个自动生成的文件是一个Objective-C头文件,用于声明目标中的Swift接口。它可以被看作是Swift代码的一个总体头文件。这个头文件的名称是你的产品模块名后面加上“-Swift.h”。

大多数人不知道的是,xyz-Swift.h头文件是由Xcode生成的,你只需要相信就好。一开始我在整个项目源文件夹中搜索这个文件,但找不到它。你只需要导入这个头文件,就能使用它。有时候你会收到类似xyz-Swift.h找不到的错误信息,只需清理项目,问题就会顺利解决。

但是我的情况是,我有一个Swift项目,已经成功使用桥接头文件将一个Objective-C文件导入到Swift项目中。但是我在Swift中声明了一些通用函数,想要在Objective-C文件中使用这些函数,但不知道如何将Swift文件导入到.m的Objective-C文件中。

仔细阅读答案和文档。

0
0 Comments

问题的原因:

在Objective-C文件中导入Swift类时,需要在Swift类的声明前加上`public`关键字,并且需要导入`YourProjectName-Swift.h`文件。但是,如果没有运行过项目,就会出现找不到`YourProjectName-Swift.h`文件的错误。

解决方法:

1. 在Swift类的声明前加上`public`关键字。

2. 在Objective-C类中导入`YourProjectName-Swift.h`文件。

3. 运行项目一次,确保`YourProjectName-Swift.h`文件被生成。

4. 现在可以访问Swift类的任何方法了。

以下是详细的解决方法:

非常简单。只需在Swift类的声明前加上`public`关键字,就像这样:

public class YourSwiftClass: NSObject {

}

现在,在Objective-C类中使用`#import "YourProjectName-Swift.h"`导入文件。你会得到一个找不到该文件的错误。不要担心,只需运行项目一次。当你在运行时点击该文件时,你会看到"YourProjectName-Swift.h"文件的内容。现在你可以访问Swift类的任何方法了。

0