プロトコルについてAppleのドキュメントが言っていることを見る
オブジェクトのクラスがわかっている場合は、そのインターフェイス宣言(およびオブジェクトが継承するクラスのインターフェイス宣言)を調べて、オブジェクトが応答するメッセージを見つけることができます。これらの宣言は、受信できるメッセージをアドバタイズします。プロトコルは、送信するメッセージをアドバタイズする方法も提供します。
コミュニケーションは双方向に機能します。オブジェクトはメッセージを送信するだけでなく、メッセージを受信します。たとえば、オブジェクトが特定の操作の責任を別のオブジェクトに委任したり、場合によっては単に別のオブジェクトに情報を要求する必要がある場合があります。場合によっては、オブジェクトが他のオブジェクトにそのアクションを通知して、必要な付随的措置を講じることができるようにすることがあります。
同じプロジェクトの一部として送信者のクラスと受信者のクラスを開発する場合(または他の誰かが受信者とそのインターフェイスファイルを提供した場合)、この通信は簡単に調整されます。送信者は、受信者のインターフェースファイルをインポートするだけです。インポートされたファイルは、送信者が送信するメッセージで使用するメソッドセレクターを宣言します。
だからこれはあなたの質問の答えです
Why not just put the optionSelected function inside @implementation?