Я прочитал кучу статей и чтений делегатов 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). Если я думаю об этом правильно, похоже, что делегаты так же, как и слушатели. Это верно? Существуют ли какие-либо существенные различия?
Спасибо!