私は現時点でObjective-Cを学んでおり、プロトコルのオプションのメソッドを見つけました。私の背景はC#で、プロトコルはC#インターフェイスと似たものです。現実世界の@optionalプロトコルメソッドの例
ここで、C#インターフェイスは契約を表し、インターフェイスを宣伝することによって、定義されたメソッドを実装すると言います。
これを念頭に置いて、なぜオプションのメソッドを定義する必要があるのか混乱します。これは、Objective-Cを減らすためのスラッシュや試みではなく、Objective-Cが大好きです。言語の理解を深めるために、これらのオプションのメリットを理解したいだけです。
誰かがオプションのメソッドが役に立つ実際のシナリオ(サンプルコード付き)を提供できるのであれば、本当にありがたいです。
。 C#インタフェースは、Objective-Cプロトコルの1つの側面にすぎません。プロトコルは契約として使用できますが、これらのオプションのメソッドは、オブジェクトが応答することもできるオプションのデリゲートのリストを構成します。それは本当に面白いです。 – kim3er
デリゲート機能を文書化するプロトコルを使用する場合は+1 –
@Tomと全く同意します。 Objective-C 2.0以前は、デリゲートメソッドを実装する必要があるクラスを避けるため、NSObjectのカテゴリでデリゲートメソッドが宣言されていました。プロトコル内のオプションのメソッドは、NSObjectにたくさんのメソッドを付けることなく、メソッドの衝突を回避するのに役立つ、よりクリーンなソリューションです。 Javaだけがオプションのインターフェースメソッドを持っていれば、MouseAdapterから継承するようなものは必要ありません。そのようなクラスを使用することは、通常、私が単一継承を呪ったことは数回です:-) –