2010-05-31 53 views
0

比如我想從UIButton的覆蓋:如何以正確的方式覆蓋便利的構造函數?

+ (id)buttonWithType:(UIButtonType)buttonType 

所以我會做:

+ (id)buttonWithType:(UIButtonType)buttonType { 
    UIButton *button = [UIButton buttonWithType:buttonType]; 
    if (button != nil) { 
     // do own config stuff ... 
    } 
    return button; 
} 

是正確的方式?或者我錯過了什麼? (是的,我已經覆蓋了數以千計的實例方法,但從來沒有類方法;))

回答

1

所以你有遞歸。

不幸的是,您不能使用buttonWithType以外的方法創建指定類型的按鈕。如果您需要在創建後初始化按鈕,您可以製作自己的靜態方法:

+(id)buttonWithTypeEx:(UIButtonType)buttonType { 
    UIButton *button = [UIButton buttonWithType:buttonType]; 
    if (button != nil) { 
     // do own config 
    } 
    return button; 
}