我在Xcode项目中定义了两个Swift类。其他一切都是Objective-C。
要使用Objective-C中的类,我尝试导入ProductModuleName-Swift.h
,但该文件仅包含其中一个Swift类的定义。 (SearchViewController
)
正在导出此类:
class SearchViewController : UIViewController {
但这不是:
public class Socket {
答案 0 :(得分:4)
来自“使用Swift with Cocoa和Objective-C”文档中的"Migrating Your Objective-C Code to Swift":
要在Objective-C中可访问和使用,Swift类必须是Objective-C类的后代,或者必须标记为@objc。
当您将Swift代码引入Objective-C时,请记住Objective-C将无法转换某些功能 特定于Swift。有关列表,请参阅"Using Swift from Objective-C"。
SearchViewController
是Objective-C类的后代,但Socket
不是。
要使它在Objective-C中可用,请将其声明为NSObject
:
public class Socket : NSObject { ...
或将其声明为
@objc public class Socket { ...