假设框架foo有(遗憾的是是公共的)类foo和一个公共 struct 帐户

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

会产生编译器错误

"Account"不是类"Foo.Foo"的成员类型

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

推荐答案

目前还没有这样的语法.另请参见SWIFT论坛上的this discussion个论坛,这些论坛正在讨论这一问题.

作为一种解决办法,您可以从Foo导入just Account struct :

import struct Foo.Account

现在你看不到Foo级了,你可以说Foo.Account级.

如果您还需要类FooFoo中的许多其他内容,您可以使用上面的技术将Foo.Account的类型别名放在一个单独的文件中.

// this is the entirety of the file:
import struct Foo.Account

typealias FooAccount = Account

此外,如果您使用的是SPM,还可以使用模块别名功能将Foo重命名为其他名称.请看Swift Evolution Proposal.

Swift相关问答推荐

Swift 5.10:无法从非隔离的deinit访问属性*,这是Swift 6中的错误''''

OBJC代码中Swift 演员的伊瓦尔:原子还是非原子?

NSWindow中以编程方式创建的TextField快捷方式与SwiftUI

Swift-Can无法在AudioKit中找出简单的麦克风效果-文件链

SWIFT:使字典数组值可变

找出touch 点的屏幕亮度

如何在设备(或常量)地址空间中创建缓冲区?

如何在闭包中使用构造 await sync

仅当 boolean 为真时才实现方法(application:didReceiveRemoteNotification)

如何在 swiftui 中设置给定字符串类型日期的日期倒计时?

从文字创建数组时的 Swift 宏

RxSwift 提高性能

供应和普通数组中具有空值的 map 函数的行为不一致?

如何处理永远不会失败的 String.Encoding 初始化程序?

Vapor, fluent 使用 PostgreSQL 保存/创建复杂模型

为什么swiftui中的导航视图栏那么大?

Swift :如何在一组字符之后得到所有东西

如何发送静默推送通知有效负载

Swift 2.0 最低系统版本要求(部署目标)

WKWebView 确实从本地文档文件夹加载资源