Nei*_*eil 4 subclass objective-c class-method superclass
假设我有一个名为MyBaseClass的Objective-C类和一个名为MySubclassedClass的子类.
MyBaseClass有两个类方法:
+ (UIColor *)backgroundColor;
+ (UIImage *)backgroundImage;
Run Code Online (Sandbox Code Playgroud)
backgroundColor方法调用backgroundImage.如果它被限制在MyBaseClass中,我的backgroundColor方法看起来就像
+ (UIColor *)backgroundColor {
UIImage *img = [MyBaseClass backgroundImage];
// irrelevant
return color;
}
Run Code Online (Sandbox Code Playgroud)
但我希望能够将MyBaseClass子类化为MySubclassedClass.backgroundColor不会改变,总是调用父backgroundImage方法.在这种情况下,backgroundImage将在每个子类中重写.
如果1backgroundColor1是一个实例方法,我只会使用
UIImage *img = [[self class] backgroundImage];
Run Code Online (Sandbox Code Playgroud)
但是,当它是静态方法时,我没有"自我"可以使用.
我可以在Objective-C中实现这一目标吗?
小智 12
当您从另一个类方法向类方法发送消息时,self就是该类.因此,您可以执行以下操作:
UIImage *img = [self backgroundImage];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1902 次 |
| 最近记录: |