【发布时间】:2020-10-29 23:19:14
【问题描述】:
我有一个框架目标,其中大部分类都是用 Objective C 编写的。最近我们开始在代码中引入 Swift 文件。我们使用模块使私有的 Objective C 文件可用于 swift 代码(更多关于这可以找到here)。
直到最近,当我尝试使用 Swift 对我的一个 Objective C 类进行子类化时,这种方法一直很好,我在 Generated MyFramework-Swift.h 文件中遇到错误,上面写着 “Module TestSwift not found”其中TestSwift 是我在modulemap 文件中提供的模块的名称。但是,如果我尝试对我的框架(公共类)的总括标题中列出的类进行子类化,它可以工作。
import TestSwift
@objc public class NewSwiftClass: ExistingObjectiveCClass {
//throws error in the generated MyFramework-Swift.h file while compiling
}
如果我将我的 swift 类保留在内部,它可以工作
import TestSwift
@objc class NewSwiftClass: ExistingObjectiveCClass {
//works fine
}
但我想在我的 Objective C 文件中使用这个 Swift 类,因此不能将其保留在内部。
TL;DR:我无法在框架目标中使用 Swift 对现有的 Objective C 类进行子类化。
【问题讨论】:
标签: objective-c swift xcode clang language-interoperability