该文档仅提及嵌套类型,但尚不清楚它们是否可用作命名空间。我还没有发现任何有关命名空间的明确提及。
在苹果开发论坛中, SevenTenEleven 回答了:
命名空间不是按文件的;它们是基于目标的(基于“产品模块名称”构建设置)。因此,您最终将得到如下结果: import FrameworkA import FrameworkB FrameworkA.foo() 所有Swift声明都被认为是某个模块的一部分,因此即使您说“ NSLog”(是的,它仍然存在),您也会得到Swift认为的“ Foundation.NSLog”。
命名空间不是按文件的;它们是基于目标的(基于“产品模块名称”构建设置)。因此,您最终将得到如下结果:
import FrameworkA import FrameworkB FrameworkA.foo()
所有Swift声明都被认为是某个模块的一部分,因此即使您说“ NSLog”(是的,它仍然存在),您也会得到Swift认为的“ Foundation.NSLog”。
NSLog
Foundation.NSLog
克里斯·拉特纳(Chris Lattner) 也在推特上发布了有关命名空间的信息。
名称间隔在Swift中是隐式的,所有类(等)都由它们所在的模块(Xcode目标)隐式地作用域。不需要类前缀
似乎与我一直在想的完全不同。