此问题已在此处有答案:
How can I disambiguate a type and a module with the same name?(2个答案)
2天前关闭。
假设框架Foo有(不幸的是公共的)类Foo和公共结构体Account
func fetchClient(guid: String) -> Foo.Account? {
产生编译器错误
“Account”不是类“Foo.Foo”的成员类型
在Foo之外访问(public)Account的正确语法是什么?(这里有很多关于类的脏话,别名是框架)
1条答案
按热度按时间yr9zkbsy1#
目前还没有这样的语法。另请参阅Swift论坛上的this discussion,该论坛正在讨论这个问题。
作为一种变通方法,您可以从
Foo
导入 * 仅 *Account
结构:现在你不会看到类
Foo
,你可以说Foo.Account
。如果您还需要类
Foo
,或者Foo
中的许多其他东西,则可以使用上述技术将Foo.Account
的类型别名放在单独的文件中。此外,如果您使用SPM,还有一个模块别名功能,允许您将
Foo
重命名为其他名称。参见Swift Evolution Proposal。