" ProductModuleName-Swift.h"不导出所有Swift类

时间:2014-09-01 12:17:06

标签: objective-c xcode swift xcode6

我在Xcode项目中定义了两个Swift类。其他一切都是Objective-C。

要使用Objective-C中的类,我尝试导入ProductModuleName-Swift.h,但该文件仅包含其中一个Swift类的定义。 (SearchViewController

正在导出此类:

class SearchViewController : UIViewController {

但这不是:

public class Socket {

1 个答案:

答案 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 { ...