gpt4 book ai didi

Swift 3.0 协议(protocol)实例化

转载 作者:行者123 更新时间:2023-11-28 06:29:17 28 4
gpt4 key购买 nike

这是我对一组命令类的声明。

var commands: [IPICommand.Type] = [CLoginCommand.self]

IPICommand 是一个协议(protocol),CLoginCommand 是一个实现该协议(protocol)的类。现在数组中只有一个元素,但可以有更多。

在此之后我想实例化数组的元素之一:

let aCommand = commands[0]()

当前实例化存在问题:无法调用非函数类型“IPICommand.Type”的值

最佳答案

您正在尝试实例化一个 IPICommand 类型,这是一个协议(protocol)。为了让它工作,在你的协议(protocol)声明中定义一个 init 方法

protocol IPICommand {
init()
}

通过这种方式,您可以执行commands[0]()。我更愿意以另一种方式命名 init,但这取决于您。

关于Swift 3.0 协议(protocol)实例化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40844261/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com