gpt4 book ai didi

ios - 协议(protocol)的 Swift 实例

转载 作者:搜寻专家 更新时间:2023-11-01 06:06:19 24 4
gpt4 key购买 nike

我可以在 swift 中创建一个协议(protocol)实例吗?

像 java 中的接口(interface)实例?

java :

public interface test {
void test();
}

new test() {
@Override
public void test() {
//...
}
}

swift :

protocol ITransmitter {
func onExecuteSuccess(data:String)
}

//instance???

最佳答案

您不能创建协议(protocol)实例。

例如

protocol ITransmitter {
func onExecuteSuccess(data:String)
}

var protocolInstance : ITransmitter = ITransmitter() // << Not allowed. This is an error

但是您可以使用协议(protocol)作为唯一类型在代码中引用对象。假设您有一个符合此协议(protocol)的类,但在您的代码中,您的要求只是能够调用它的协议(protocol)方法,您不关心该类实例支持的任何其他方法。

例如-

class A{
func foo(){

}
}
extension A : ITransmitter{

func onExecuteSuccess(data:String){
//Do stuff here
}
}

//This function wants to run the ITransmitter objects, so it uses only protocol //type for its argument. The transmitter can be of any class/struct, but has to //conform to ITransmitter protocol

func runTransmittor(transmitter : ITransmitter){
//some other statements here..
transmitter. onExecuteSuccess(data :SomeData){
}
}

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

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