如何调用addTarget:action:forControlEvents:来自类方法?

时间:2016-09-30 14:32:30

标签: ios objective-c oop

我正在尝试使用单个类方法根据我传入的有效负载实例化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:

1 个答案:

答案 0 :(得分:0)

人们可能会争论在这种情况下使用类方法还是实例方法更好,但我只是回答编码问题。

如果需要,您可以使用类方法。您instantiate:with:方法的实施原样很好。只需添加buttonClicked:方法即可。它需要是类方法:

+ (void)buttonClicked:(UIButton *)button {
    // do stuff
}