假设框架 Foo 有(遗憾的是公共)类 Foo 和一个公共结构 Account
func fetchClient(guid: String) -> Foo.Account? {
产生编译器错误
“Account”不是类“Foo.Foo”的成员类型
访问 Foo 之外的(公共)帐户的正确语法是什么? (这里有很多关于框架别名的脏话)
还没有这样的语法。另请参阅 Swift 论坛上的此讨论,该论坛正在讨论这个具体问题。
作为解决方法,您可以从 Account
导入
just
Foo
结构:
import struct Foo.Account
现在您将看不到课程
Foo
,您可以说 Foo.Account
。
如果您还需要类
Foo
或 Foo
中的许多其他内容,您可以使用上述技术将 Foo.Account
的类型别名放在单独的文件中。
// this is the entirety of the file:
import struct Foo.Account
typealias FooAccount = Account
此外,如果您使用 SPM,还有一个模块别名功能,允许您将
Foo
重命名为其他名称。请参阅Swift Evolution 提案。