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でこれを達成できる場所はありますか?