ios - 命名空间冲突与 cocoa pod 模块 swift

标签 ios swift cocoapods

我在我的一个名为 Foo 的 Swift 文件中有一个枚举。 其中一个名为 NameA 的 Cocoapods 也具有名称为 Foo 的相同枚举(public enum,不在任何类中)。 该模块还有一个与其框架 NameA 同名的类。

如果我尝试像这样在 NameA 模块中引用 Foo:

NameA.Foo

它不起作用,因为编译器认为我指的是类 NameA,而不是模块 NameA。 此处发布的解决方法对我也不起作用 Swift namespace conflict

这似乎是 swift 中报告的错误: https://bugs.swift.org/browse/SR-898

最佳答案

  • 不要导入 NameA

  • 相反,import enum NameA.Foo(注意关键字“enum”,也可用于“struct”或“class”或“func”)

  • 引用 Foo(您的枚举)或 NameA.Foo(他们的枚举)。

如果您需要在与 NameA.Foo 相同的文件中引用 NameA:

  • 为您的“包装器”类型创建一个新文件:

导入名称A 类型别名 NameAWrapper = NameA

  • 在您的其他文件中将类 NameA 引用为 NameAWrapper,而无需直接导入模块。

这是受此解决方法(您链接到的)的启发,但根据您的情况稍作修改:https://stackoverflow.com/a/26774102/358806

关于ios - 命名空间冲突与 cocoa pod 模块 swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39710620/

相关文章:

swift - 具有私有(private)构造函数的公共(public) OptionSet

ios - Cocoapods 错误 : "Pull is not possible because you have unmerged files."

iphone - 是否有任何 ios 图形库具有内置的 'explosion' 效果?

ios - UITableView 上的奇怪线条

swift - 快速的大中央调度(GCD)

ios - 如何在 iOS 中获取正确的当前时间?

ios - 无法打开文件 “Pods-xxx.xcconfig”,因为没有这样的文件 :/Pods appears twice in my configuration paths

ios - 如何为 iOS 扩展定义 pod 文件

android - 有没有办法可以通知应用程序来自设备的指纹已被注销?

iphone - iOS 核心数据何时保存上下文?