MyBaseClassというObjective-CクラスとMySubclassedClassというサブクラスがあるとしましょう。
MyBaseClassには、次の2つのクラスメソッドがあります。
+ (UIColor *)backgroundColor;
+ (UIImage *)backgroundImage;
backgroundColorメソッドは。を呼び出しますbackgroundImage
。MyBaseClassに限定されている場合、私のbackgroundColor
メソッドは次のようになります。
+ (UIColor *)backgroundColor {
UIImage *img = [MyBaseClass backgroundImage];
// irrelevant
return color;
}
しかし、MyBaseClassをMySubclassedClassにサブクラス化できるようにしたいと思います。backgroundColor
変更されず、常に親のbackgroundImage
メソッドを呼び出します。このシナリオでbackgroundImage
は、すべてのサブクラスでオーバーライドされます。
1backgroundColor1がインスタンスメソッドの場合、単純に次のように使用します。
UIImage *img = [[self class] backgroundImage];
しかし、静的メソッドの場合に使用できる「自己」はありません。
Objective-Cでこれを達成できる場所はありますか?