swift - 共享内部类/方法/等。 Swift 模块之间

标签 swift module frameworks

我有 2 个 Swift 模块,我们称它们为模块“A”和模块“B”。我需要在这些模块之间共享一些代码,我们将此模块称为“核心”。

这些模块由客户应用程序使用。客户使用模块 A、模块 B 或两者,并且他们总是会获得“核心”的副本。模块“核心”包含由“A”和“B”使用并公开给客户的数据模型。但是,我希望“A”和“B”能够使用内部方法/类/等。在“核心”中,而不是将它们暴露给客户(也就是说,我不想将它们公开)。例如,我希望“A”和“B”能够创建我在“Core”中定义的数据模型的实例,但我不希望客户能够实例化它们。

简而言之,我希望模块“A”和“B”能够访问“Core”,就好像它是同一模块的一部分一样。我正在寻找相当于 C++ 中的“友元类”,但针对的是 Swift 中的模块。

当然,我可以将所有内容放入一个巨大的项目中,然后使用不同的构建目标来创建 A+Core、B+Core 和 A+B+Core 模块,但是一旦我们添加模块,这将导致组合爆炸C、D、E、F 等

这似乎是一种非常常见的组织代码的方法,但我似乎无法在 Swift 4 中找到一种方法来做到这一点。这里有没有人找到一种方法来做到这一点或另一种构建代码库的方法,以便私有(private)代码可以在模块之间共享吗?

最佳答案

C++ 中的友元类与模块无关。
此问题的正常解决方案是创建模块 C,并让 A 和 B 在内部使用它。

关于swift - 共享内部类/方法/等。 Swift 模块之间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54515620/

相关文章:

swift - 获取 UTC 中的当前本地时间并设置为二进制运算符,如 >= 或 <

Swift - 类型没有成员

ios - 在 UILabel 上使用捏合手势调整字体大小和标签框架?

ios - 如何从 subview Controller 中找到选项卡栏方案中选定的选项卡

javascript - 有没有办法在使用 CommonJS 模块和 require 时包含一个目录?

javascript - 为什么 TypeScript 混合使用模块和原型(prototype)模式?

node.js - 如何为替换 "exports"对象的模块创建 Typescript (1.8) 类型定义?

php - 智能(?)数据库缓存

java - 对 Java 电子邮件模板的建议?

php - kohana 框架无法在 Linux 服务器上加载模块,而在 mamp 上完美加载模块