Вы не можете создать экземпляр протокола.
Например
protocol ITransmitter {
func onExecuteSuccess(data:String)
}
var protocolInstance : ITransmitter = ITransmitter() // << Not allowed. This is an error
Но тем не менее вы можете обратиться объект в вашем коде, используя протокол в качестве единственного типа. Скажем, у вас есть класс, который соответствует этому протоколу, но в вашем коде ваше требование состоит только в том, чтобы иметь возможность называть метод протокола на нем, и вам все равно, какие другие методы поддерживает экземпляр класса.
Для ПРИМЕР-
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){
}
}
хорошо мы можем сделать что-то вроде этого вар callHandler: CallsHanlerProtocol = CallHandler() –