He leído un montón de artículos y lecturas sobre delegados de Objective-C, tratando de entenderlos. Viniendo de Java, se parecen mucho a los oyentes de Java. Por ejemplo, supongamos que tengo un botón en Java. Cuando se presiona el botón, quiero que pase algo. Mi código podría ser algo como esto:Delegados de Objective-C vs oyentes de Java
ButtonListener myButtonListener = new ButtonListener();
someButton.addActionListener(myButtonListener);
...
class ButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
}
}
Algo por el estilo. En Object-c parece que haría algo como llamar a un método setDelegate para mi botón y pasarle el "oyente" como delegado. La clase de botón real probablemente verifique si ese delegado respondió a algún selector (es decir, actionPerformed). Si estoy pensando en esto de la manera correcta, parece que los delegados son como oyentes. ¿Es eso correcto? ¿Hay alguna diferencia importante?
Gracias!
Técnicamente, usando bloques, puede hacer delegados en línea. Tengo una clase de utilidad para esto en algún lugar de mi disco duro ... –
Oh, realmente estaba buscando algo así en una aplicación en la que estaba trabajando para evitar tener que crear una clase completamente nueva solo para una función de delegado. Me encantaría ver cómo lo haces –
Aquí tienes: Encabezado: http://pastebin.com/Gdg4nsAF Principal: http://pastebin.com/SGVGCB31. Tendrá que hacer una clase por cada delegado, pero cuando necesite muchos de ellos, esto ayudará a mantener baja la cantidad de clases. –