我已经阅读了很多有关Objective-C代表的文章和读物,试图理解它们。来自Java,它们看起来非常像Java侦听器。例如,假设我在Java中有一个按钮。按下按钮时,我希望发生一些事情。我的代码可能看起来像这样:
ButtonListener myButtonListener = new ButtonListener();
someButton.addActionListener(myButtonListener);
...
class ButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
}
}
这样的事情。在Objective-C中,似乎可以为我的按钮调用setDelegate方法并将其作为委托传递给“侦听器”。然后,实际的按钮类可能会检查该委托是否响应了某些选择器(即actionPerformed)。如果我正在考虑正确的方法,似乎代表就像侦听器一样。那是对的吗?有什么主要区别吗?
谢谢!
您几乎可以使用那里的按钮。唯一真正的区别是obj-c中的委托通常实现多个功能,以对与他们要委托的对象有关的事件执行各种操作。例如,UITextViewDelegate具有以下方法:
– textViewShouldBeginEditing:
– textViewDidBeginEditing:
– textViewShouldEndEditing:
– textViewDidEndEditing:
我发现的唯一真正的区别是您无法内联创建委托,就像在Java中那样:
someButton.setOnClickListener ( new View.OnClickListener {
@Override
public void onClick() {
//do stuff
}
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句