Допустим, у меня есть класс Objective C с именем MyBaseClass и подкласс с именем MySubclassedClass.
MyBaseClass имеет два метода класса:
+ (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?