当我将Swift类添加到Objective-C项目中时,它不包括在Swift的自动生成头文件中。
我的步骤如下:
创建了名为“swifttest”的单视图目标C项目
构建设置->打包->定义模块设置为“是”
产品名称(和产品模块名称)没有更改,因此它是“swifttest”
添加了swiftinobjc.swift单类SWIFT文件:


    import Foundation
    class SwiftInObjc : NSObject{
        func printHello(){
            println("Hello")
        }
    }

在ViewController类中,包含头和声明的Swift对象:

#import "SwiftTest-Swift.h"

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    SwiftInObjc * swiftObj;
}

之后,由于错误,无法生成该项目:
使用未声明的标识符“swiftinobjc”
头文件“swifttest swift.h”已按预期在派生数据中创建,但它不包含我的swift类。
注:我的案例类似于this question
但我的类是nsObject的子类,所以这肯定是另一个原因。
(我也试过纯斯威夫特的课程:

import Foundation

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

但没用,我还是有同样的错误)

最佳答案

尝试宣布

@objc public class SwiftInObjc {}

10-08 06:12