当我将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 {}