Swift Vapor和模块;如何区分两个重叠的'类型符号'

时间:2016-12-27 16:04:07

标签: swift module namespaces vapor

我希望将一些(iOS)客户端代码重新用于示例Vapor服务器端项目。

有问题的代码依赖于SwiftyJSON功能,定义为结构JSON;现在这个名称插槽不是“免费”,但已经在Vapor所依赖的包中使用(包名称也是JSON)。

虽然我可以在我以前的客户端代码(作为App.JSON)中指向我想要的JSON,但是在代码中使用的控制器也使用JSON。显然,我将SwiftyJSON库文件放入App命名空间实际上覆盖了对Vapor的JSON的无模块引用。

我试图引用JSON.JSON,但它没有被识别。 JSON是项目中已定义和编译的框架。它是否应该隐含地定义模块名称?

如何才能获得Vapor的JSON?

谢谢..

1 个答案:

答案 0 :(得分:1)

事实上,Vapor模块也会导出JSON。因此,以下工作:

import Vapor

// Introduce a symbol collision
struct JSON {}

// Import from the Vapor module
print(try Vapor.JSON(node: "test"))