Swift类未出现在生成的<Project_Name> Swift.h头文件中

用户5421678

我在将类(用Swift编写并从pod编写)导入到Objective-C代码时遇到问题。我认为问题是由于该类未能出现在我自动生成的-Swift.h头文件中,但我不知道如何解决此问题。

我的Podfile有use_frameworks!声明,我已经安装了pod,并且可以在任何Swift代码中使用pod的类,但不能在Obj-C中使用。

我要导入的Swift类是UITableViewCell的扩展,它被声明为公共类。它的源中没有声明带有@objc注释的类,但是我自己添加它似乎也没有什么不同。

在我的Obj-C源代码中,我有#import "ProjectName-Swift.h"(带有我的实际项目名称),但是我的Obj-C文件在清理并构建后仍然无法识别该类。我检查了Swift头文件是否存在(并且确实存在),但经检查似乎没有提及我要导入的Swift类。

我尝试@class在我的Obj-C源代码中向该类添加一个前向声明,但这仅删除了警告并延迟了错误,直到我尝试构建为止。在我的构建设置中启用了模块。如果有人有什么见识,将非常感谢您的帮助。

编辑:如果我手动将源文件添加到Build Phases -> Compile Sources我的项目中,则一切正常-但是,这当然违背了使用Pod的目的。因此,这似乎是XCode搜索路径的问题。

redent84

只有公共类和方法才能发布,以供其他模块使用。为了确保与Objective-C兼容,您可以使用@objc和继承注释类NSObject

例如,将您的类定义从以下位置更改:

class MyClass {
    func sayHello() {}
}

至:

@objc public class MyClass: NSObject {
    public func sayHello() {}
}

要在XCode 7的Objective-C中使用Swift框架(iOS 8+),只需使用以下@import语句就可以像在Swift中那样导入它们

@import MyModule;

您所有的公开课都将开放。


在同一项目的Apple文档中,Swift和Objective-C的“导入外部框架”和“从Objective-C使用Swift”部分中的更多信息

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章