Swift中的子模块

Att*_*Fun 8 module swift

假设我有一个应用程序,MyApp是在Xcode工作区中构建的.在这个工作区内,我有我的框架,Foo和Bar的主要应用程序目标和两个嵌套的Xcode项目.

在我的应用程序中,我导入Foo和Bar,依赖项将Foo中的对象注入到Bar中的对象中.但是,我说,我不需要所有的Foo,只需要几个类.我怎么能在foo中创建一个子模块并导入它.例如导入Foo.Models.Animals.Dog

小智 11

虽然你可以做类似的事情

import struct MyModule.MyStruct

import func Darwin.glob
Run Code Online (Sandbox Code Playgroud)

我不确定你是否能比这更深入.这是(免费)Swift书中的相关引用

"提供更多细节限制导入哪些符号 - 您可以在模块或子模块中指定特定子模块或特定声明.使用此详细表单时,只有导入的符号(而不是声明它的模块)在当前范围内可用."

它接着解释说,你可以导入任意的typealias, struct, class,enum,protocol,var,或者func

看起来Swift对子模块有一些类型的支持(它们在一些地方被提到),但我不确定我们是否有能力实际编译它们.