Swift命名空间冲突

hpi*_*que 4 namespaces swift

考虑:

  • 一个名为Swift的框架FrameworkA定义了类型Thing.
  • 调用的Swift框架FrameworkB也定义了类型Thing和类型FrameworkA.
  • 一个在同一个Swift文件中导入两个框架的应用程序.

我如何FrameworkA.Thing在所述文件中引用?以下行失败了Thing is not a member of FrameworkA.

let t : FrameworkA.Thing? = nil
Run Code Online (Sandbox Code Playgroud)

hpi*_*que 8

这似乎是一个Swift错误.作为一种变通方法,您可以在仅导入的应用程序中创建一个新的Swift文件,FrameworkAtypealias为其定义Thing:

import FrameworkA

typealias ThingA = Thing
Run Code Online (Sandbox Code Playgroud)

然后在需要导入两个框架的文件中,使用ThingA而不是FrameworkA.Thing.