【发布时间】:2016-11-14 16:54:08
【问题描述】:
假设我们有 2 个用 Swift 编写的框架:A.framework 和 B.framework,A 依赖于 B。我希望每个依赖于A 的项目都能够访问框架B 的api,而不必在项目源文件中访问import B。如何实现?
编辑:我特别感兴趣的是如何通过 Cocoapods 来完成。
另一个编辑:我认为如果我解释这个问题出现的背景会很有帮助,因为尽管它的持续时间和赏金,我仍然没有得到合适的答案。
所以,我有 pod Freestyler (https://github.com/cayugasoft/Freestyler),它本身依赖于 pod FreestylerCore (https://github.com/cayugasoft/FreestylerCore)。工作正常,但即使import Freestyler 完成,我也必须在项目中使用import FreestylerCore。它看起来对我来说有点烦人,因为我认为这个依赖(Freestyler -> FreestylerCore)是实现细节,我希望库的用户自动让这个东西工作而不导入除主 pod 之外的任何其他东西,Freestyler。所以,这就是我问这个问题的原因。有什么方法可以实现吗?
【问题讨论】:
-
如果有错误请纠正我,因为 A 依赖于 B 并且在 A 的源文件中导入了 B。现在您想拥有一个项目 P 而不必在 P 源文件中导入 B 吗?是对的吗 ?如果是这种情况,您最终希望将 B 添加为 A 的依赖项并仅添加 A 作为 P 的依赖项?
-
@PenkeySuresh:我基本上想要 Objective-C 中的伞形标题之类的东西。您导入此标头,所有其他标头都会自动导入,您不必手动导入它们。我想知道是否有实现类似行为的机制,但在 Swift 中。
-
我想你要找的是
@_exported。 -
@HAS:是的,它有效!请回答,我会接受的。我决定不在我上面提到的项目中使用它,因为: 1. 它是一种私有的、未记录的属性,可以随时删除; 2. 看起来它不适用于自定义运算符(我总是收到错误 Operator is not a known binary operator)。但无论如何,很高兴知道这样的事情存在。