Я прочитал кучу статей и материалов по делегатам Objective-C, пытаясь понять их. Исходя из Java, они очень похожи на слушателей Java. Например, допустим, у меня есть кнопка на Java. Когда кнопка нажата, я хочу, чтобы что-то произошло. Мой код может выглядеть примерно так:
ButtonListener myButtonListener = new ButtonListener();
someButton.addActionListener(myButtonListener);
...
class ButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
}
}
Примерно так. В объекте-c кажется, что я сделал бы что-то вроде вызова метода setDelegate для моей кнопки и передачи ему «слушателя» в качестве делегата. Фактический класс кнопки затем, вероятно, проверит, ответил ли этот делегат на какой-либо селектор (например, actionPerformed). Если я правильно об этом думаю, мне кажется, что делегаты подобны слушателям. Это верно? Есть ли какие-нибудь существенные отличия?
Спасибо!