我可以在 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/