Swift Vapor 和模块;如何区分两个重叠的 'type symbols'

标签 swift module namespaces vapor

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

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

虽然我可以在我以前的客户端代码(如 App.JSON)中指出我想要的 JSON,但样板化到代码中的 Controller 也使用 JSON。显然,像我一样将 SwiftyJSON 库文件放入 App 命名空间实际上覆盖了对 Vapor JSON 的无模块引用。

然后我尝试引用 JSON.JSON,但它没有被识别。 JSON是项目中定义编译好的框架。它不应该也隐含地定义一个模块名称吗?

那么我怎样才能到达 Vapor 的 JSON?

谢谢..

最佳答案

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

import Vapor

// Introduce a symbol collision
struct JSON {}

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

关于Swift Vapor 和模块;如何区分两个重叠的 'type symbols',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41348348/

相关文章:

xcode - 如何找到我可以导入的所有 swift 系统模块?

clojure - Duct框架中函数如何进入不同的命名空间?

php5 和命名空间?

arrays - Swift 3 - 二元运算符 '==' 不能应用于两个 'MyStruct' 操作数

perl - 为什么 cpanm 不安装依赖项?

ios - 显示绘图代码中的图像

ruby - 模块中的别名单例方法

php - PHP 中出现双斜杠 (\\) 的 "class not found"错误

ios - 如何快速从图像创建循环加载器

swift - 如何以编程方式在 containerView 中添加 ViewController?