Un mensaje es el nombre de un selector y los parámetros para ese selector.
Un selector es un símbolo.
Un método es un fragmento de código en una clase identificada por un selector.
En otras palabras, [foo bar: baz]dice "envíe el mensaje llamado @selector(bar:)con el parámetro bazal objeto foo. Puede enviar ese mensaje a muchos objetos diferentes.
Por el contrario, el método bar: para un Foopodría verse así
-(int)bar:(int)n {
return n + 1;
}
pero por un momento FooTwopodría parecer
-(int)bar:(int)n {
return n + 2;
}
(Espero tener la sintaxis correcta; ha pasado un tiempo desde la última vez que toqué Objective-C).
Cuando envía el mensaje, el núcleo Objective-C envía el mensaje al fooque decide si comprende el mensaje. Decide esto en función de si puede encontrar un método identificado por ese selector.
Dos métodos con el mismo nombre y un mensaje.
También es posible que un objeto simplemente reenvíe un mensaje particular (o conjunto de mensajes) a otro objeto para su procesamiento. En este caso, envía un mensaje a este objeto proxy, que no tiene métodos para que coincida con ese mensaje , y el proxy reenvía el mensaje a su objeto envuelto.