Tah*_*Haq 5 ios cocoapods swift
我的一个Swift文件中有一个枚举,名为Foo。其中一个被称为Cocoapods的名称NameA也具有相同的枚举Foo(public enum,不在任何类中)。该模块还有一个与框架名称相同的类NameA。
如果我尝试Foo在这样的NameA模块中引用:
NameA.Foo
Run Code Online (Sandbox Code Playgroud)
它不起作用是因为编译器认为我是在指类NameA,而不是在模块NameA。Swift命名空间冲突,这里发布的解决方法对我不起作用
这似乎是迅速报告的错误:https : //bugs.swift.org/browse/SR-898
不要 import NameA。
相反,import enum NameA.Foo(注意关键字“ enum”也可以用于“ struct”,“ class”或“ func”)
引用Foo(您的枚举)或NameA.Foo(他们的枚举)。
如果您需要NameA在与以下文件相同的文件中进行引用NameA.Foo:
import NameA
typealias NameAWrapper = NameA
NameA一样引用该类,NameAWrapper而无需直接导入模块。这是受此解决方法(您已链接到)的启发,但根据您的情况进行了稍微修改:https : //stackoverflow.com/a/26774102/358806
我最近遇到了类似的问题。您不会喜欢我找到的解决方案,但无论如何我都会分享它。我不得不分叉我正在使用的 pod,并将其重命名为新名称。新项目名称不再与类名称冲突,我可以将其命名为MyForkedName.ClassName. 这确实是一种不方便的方法,但在我们的例子中,它是一个较旧的库,在一段时间内没有改变(并且我们将来将完全删除该库),所以我愿意现在就解决。
| 归档时间: |
|
| 查看次数: |
1532 次 |
| 最近记录: |