【发布时间】:2014-11-13 10:27:09
【问题描述】:
当我将 Swift 类添加到 Objective-C 项目时,它并未包含在自动生成的 swift 标头中。
我的步骤如下:
- 创建了名为“SwiftTest”的单视图 Objective C 项目
- 构建设置 -> 打包 -> 将模块定义为“YES”
- 产品名称(和产品模块名称)未更改,因此为“SwiftTest”
- 添加了带有单个类的 Swift 文件 SwiftInObjc.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 子类化的,所以这一定是另一个原因。 (我也尝试过纯 Swift 类:
import Foundation
@objc class SwiftInObjc {
class func newInstance() -> SwiftInObjc {
return SwiftInObjc()
}
func hello() {
println("hello")
}
}
但它没有帮助,我仍然有同样的错误)
【问题讨论】:
-
我只是按照您的确切步骤操作,得到的只是关于 swiftObj 是未使用变量的预期警告。它编译和构建得很好。我正在使用 Xcode 6.1;大概你也在当前版本中?
-
问题已关闭。 Matt 是对的,这是 XCode 版本问题。但他没有发布答案,所以我不能接受。
-
确保 swift 类继承自 NSObject 为我做到了。
标签: objective-c swift