swift:每当框架名称具有包含框架名称的公共实体时,指定框架中公共结构的路径

问题描述 投票:0回答:1

假设框架 Foo 有(遗憾的是公共)类 Foo 和一个公共结构 Account

func fetchClient(guid: String) -> Foo.Account? {

产生编译器错误

“Account”不是类“Foo.Foo”的成员类型

访问 Foo 之外的(公共)帐户的正确语法是什么? (这里有很多关于框架别名的脏话)

swift namespaces
1个回答
2
投票

还没有这样的语法。另请参阅 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 提案

© www.soinside.com 2019 - 2024. All rights reserved.