【问题标题】:Swift Namespacing IssueSwift 命名空间问题
【发布时间】:2017-12-04 14:33:05
【问题描述】:

我创建了一个名为 Bundle 的类,我真的很想保持这种名称,因为它完美地描述了它在我的项目中的用途。
现在,我在一些代码中使用了 Swift 的 Bundle,现在这些名称发生了冲突。我在创建 Set 类之前遇到过这个问题。当我想使用标准的Set 类时,我可以通过输入Swift.Set 来解决这个问题,正如我在this answer 中发现的那样。
我也尝试将该解决方案应用于我的Bundle 问题,但 Xcode 抱怨:

模块“Swift”没有名为“Bundle”的成员

知道为什么它适用于Set,但不适用于Bundle
谢谢!

【问题讨论】:

  • 我会真的考虑重命名你的类...
  • 我一直在努力改进我的编码风格。你为什么真的建议重命名它?
  • 只是我的(自发的,个人的)意见。从长远来看,避免名称冲突对我来说似乎不那么令人困惑。如果一个新开发者在你的项目上工作,并且不知道有不同的 Bundle 类怎么办?
  • 这当然是一个论点。但是,1)错误会让他知道,2)我正在努力做好记录,以便任何人都可以开始工作,而无需事先了解我的项目。

标签: swift namespaces


【解决方案1】:

Bundle 是在 Foundation 库中定义的,而不是在 Swift 标准中 图书馆:

let mainBundle = Foundation.Bundle.main

【讨论】:

    猜你喜欢
    • 2011-02-05
    • 2013-03-26
    • 2016-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 2011-04-11
    相关资源
    最近更新 更多