アプリケーション共同開発部のしみずです。 このブログを読んでいるみなさんならSwift好きですよね?ということは、Protocolも好きですよね? では、Protocolのメソッドがどのように呼び出されるのかご存知でしょうか? 今回は、Protocolに関して一度は見たことや嵌ったことがあるかもしれない事例と、その原因の考察をしてみたいと思います。 事例 最後の行では、S structのインスタンスを渡しているのにも関わらず、P protocolのmethod()が出力されています。 これの解決方法は、P protocolの定義本体に”func method()”を含めることですが、ではなぜ、P.method()が実行されるのでしょうか? それはextensionメソッドは、Static Dispatchだからです。 Swiftで利用されるディスパッチの種類 ここでディスパッチについて整理
![あなたのメソッドはどこから? Protocol「私は…」](https://cdn-ak-scissors.b.st-hatena.com/image/square/4cd6bcd98c8e8a2a5ae1b2ffb7d8d168c9b80c31/height=288;version=1;width=512/https%3A%2F%2Fblog.fenrir-inc.com%2Fwp%2Fwp-content%2Fthemes%2Ffenrir_dev%2Fimg%2Fcommon%2Fogp_dev_engineer.png)