我正在尝试使用单个类方法根据我传入的有效负载实例化UIButton
,并添加一个动作处理程序,如下所示:
+ (void)instantiate: (UIButton *)button with:(NSDictionary *)payload {
[button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
button.title = payload.title;
}
如果instantiate:with:
方法是普通方法,我通常不会遇到问题,但在这种情况下我不知道如何实现buttonClicked:
方法。
它应该是一种类方法吗?它应该是一个实例方法吗?另外,如果我需要将其设为类方法,如何在@selector
调用中指定addTarget:action:forControlEvents:
?
答案 0 :(得分:0)
人们可能会争论在这种情况下使用类方法还是实例方法更好,但我只是回答编码问题。
如果需要,您可以使用类方法。您instantiate:with:
方法的实施原样很好。只需添加buttonClicked:
方法即可。它需要是类方法:
+ (void)buttonClicked:(UIButton *)button {
// do stuff
}