在Obj-C项目中,Swift类没有添加到swift的自动生成的头文件中

时间:2014-11-13 10:27:10

标签: objective-c swift

当我将Swift类添加到Objective-C项目时,它不包含在swift的自动生成的头文件中。

我的步骤如下:

  1. 创建了一个名为" SwiftTest"
  2. 的单视图Objective C项目
  3. 构建设置 - >包装 - >将模块设置为" YES"
  4. 产品名称(和产品模块名称)没有变化,因此它是" SwiftTest"
  5. 使用单个类添加Swift文件SwiftInObjc.swift:
  6. 
        import Foundation
        class SwiftInObjc : NSObject{
            func printHello(){
                println("Hello")
            }
        }
    
    1. 在ViewController类中包含标头和声明的swift对象:
    2. 
      #import "SwiftTest-Swift.h"
      
      @implementation ViewController
      
      - (void)viewDidLoad {
          [super viewDidLoad];
          SwiftInObjc * swiftObj;
      }
      

      之后由于错误而无法构建项目:

      使用未声明的标识符" SwiftInObjc"

      头文件" SwiftTest-Swift.h"已按预期在派生数据中创建,但它不包含我的swift类。

      注意:我的情况类似于this question 但我的班级是从NSObject分类的,所以它必须是另一个原因。 (我也试过纯粹的Swift课程:

      
      import Foundation
      
      @objc class SwiftInObjc {
          class func newInstance() -> SwiftInObjc {
              return SwiftInObjc()
          }
          func hello() {
              println("hello")
          }
      }
      

      但它没有帮助,我仍然有同样的错误)

1 个答案:

答案 0 :(得分:1)

尝试声明

@objc public class SwiftInObjc {}