【发布时间】:2017-10-26 03:01:00
【问题描述】:
在框架中,我们使用 Swift 和 ObjC,因此 Swift 实例在 ObjC 方法中实例化。为此,我们必须将这些 swift 文件公开/打开,以便它们出现在 SWIFT_INSTALL_OBJC_HEADER (OurModule-Swift.h) 中,然后由 ObjC 导入。 问题是我们想从框架的公共接口中隐藏那些 Swift 类。苹果说:
对于框架目标,只有带有
public或open修饰符的声明才会出现在生成的标头中。您仍然可以在框架的 Objective-C 部分中使用标记有internal修饰符的 Swift 方法和属性,只要它们是在从 Objective-C 类继承的类中声明的。有关访问级别修饰符的更多信息,请参阅 Swift 编程语言 (Swift 3.1) 中的访问控制。
所以理论上应该可以从 ObjC 创建内部 swift 类,但它似乎不起作用。有什么想法吗?
【问题讨论】:
标签: objective-c swift cocoa interop llvm-clang