私はプロトコルを読んでいます(そして、それらを使用していくつかのコードを書き直すことができるかもしれないと考えています)が、クラスとは何が違うのか正確にはわからないようです?
たとえば、クラス ColorController がある場合:
#import <Foundation/Foundation.h>
@interface ColorController : NSObject {
UIColor* colorToReturn;
}
- (UIColor* ) setColor : (float) red : (float) green : (float) blue;
@end
そして.m
#import "ColorController.h"
@implementation ColorController
- (UIColor* ) setColor : (float) red : (float) green : (float) blue {
float newRed = red/255;
float newGreen = green/255;
float newBlue = blue/255;
colorToReturn = [UIColor colorWithRed:newRed green:newGreen blue:newBlue alpha:1.0];
return colorToReturn;
}
@end
次に、それを別のクラスにインポートします。
ColorController* colorManager = [ColorController new];
UIColor* newColor = [colorManager setColor:66.0:66.0:66.0];
他の多くのクラスが setColor メソッドを使用できるため、これをプロトコルに変換するのは理にかなっているようです。しかし、プロトコルの理解がずれているかどうかはわかりません。プロトコルが宣言されたら、他のクラスで使用できると思いましたが、それでも.hファイルに含める必要があるため、私にとって唯一の識別可能な違いはプロトコルを使用すると、プロトコルをインポートしたクラスでsetColorメソッドを直接呼び出すことができますが、クラスをインポートすると、クラスとメソッドにコールバックする必要があります [colorManager setColor:66.0:66.0:66.0]; ここでの利益は正確には何ですか?
現在、私の見解はおそらく、私がプロトコルの初心者/経験が浅く、それらとその使用法についての見解が限られているためです。プロトコルとおそらく使用例です。本当に感謝しています。