Objective-C委托与Java侦听器

JPC:

我已经阅读了很多有关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)。如果我正在考虑正确的方法,似乎代表就像侦听器一样。那是对的吗?有什么主要区别吗?

谢谢!

丹·F:

您几乎可以使用那里的按钮。唯一真正的区别是obj-c中的委托通常实现多个功能,以对与他们要委托的对象有关的事件执行各种操作。例如,UITextViewDelegate具有以下方法:

– textViewShouldBeginEditing:
– textViewDidBeginEditing:
– textViewShouldEndEditing:
– textViewDidEndEditing:

我发现的唯一真正的区别是您无法内联创建委托,就像在Java中那样:

someButton.setOnClickListener ( new View.OnClickListener {
    @Override
    public void onClick() {
        //do stuff
    }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章