我阅读了大量关于Objective-C delegate的文章和资料,试图理解它们。作为来自Java的开发者,它们看起来非常像Java监听器。例如,假设我有一个Java中的按钮。当按下这个按钮时,我希望发生某些事情。我的代码可能类似于:
ButtonListener myButtonListener = new ButtonListener();
someButton.addActionListener(myButtonListener);
...
class ButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
}
}
类似这样。 在Objective-C中,我似乎需要调用一个setDelegate方法给我的按钮并将“监听器”作为代理传递给它。实际的按钮类可能会检查该委托是否响应某些选择器(即actionPerformed)。如果我正确地思考这个问题,似乎委托就像监听器一样。那是正确的吗?有什么主要区别吗?
谢谢!