例如,我想从UIButton覆盖:
+ (id)buttonWithType:(UIButtonType)buttonType
所以我会这样做:
+ (id)buttonWithType:(UIButtonType)buttonType {
UIButton *button = [UIButton buttonWithType:buttonType];
if (button != nil) {
// do own config stuff ...
}
return button;
}
是正确的方法吗?还是我错过了什么? (是的,我一直在覆盖成千上万的实例方法,但从来没有类方法;))
答案 0 :(得分:1)
所以你得到了递归。
不幸的是,您无法使用buttonWithType以外的方法创建具有指定类型的按钮。如果您需要在创建后以某种方式初始化按钮,您可以创建自己的静态方法:
+(id)buttonWithTypeEx:(UIButtonType)buttonType {
UIButton *button = [UIButton buttonWithType:buttonType];
if (button != nil) {
// do own config
}
return button;
}