为啥我们需要将 Swift 类标记为 `public` 或 `open` 以使其在 Objective-C 框架项目中可访问?
Posted
技术标签:
【中文标题】为啥我们需要将 Swift 类标记为 `public` 或 `open` 以使其在 Objective-C 框架项目中可访问?【英文标题】:Why do we need to mark a Swift class `public` or `open` to make it accessible in an Objective-C framework project?为什么我们需要将 Swift 类标记为 `public` 或 `open` 以使其在 Objective-C 框架项目中可访问? 【发布时间】:2019-08-12 10:25:55 【问题描述】:作为标题。
但基于 Apple 的 doc,它说:
用 internal 修饰符和标记的方法和属性 在继承自 Objective-C 类的类中声明的是 Objective-C 运行时可以访问。
它说internal
应该可以工作。
我是不是误会了什么?
【问题讨论】:
在你的引文中没有说你必须公开或公开,你不必这样做,他们可以留在内部从 obj-c 访问 【参考方案1】:类可以被运行时访问,但不能被程序员访问。 您将需要类头来使用它们。 如果您将它们标记为公共,Xcode 只会为您生成公共的 Objective-C 标头。
【讨论】:
以上是关于为啥我们需要将 Swift 类标记为 `public` 或 `open` 以使其在 Objective-C 框架项目中可访问?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Swift 类需要 init 而不是 Swift struct
Spring - 为啥我们需要标记一个类@repository(或@Component以外的任何东西)[重复]