Un messaggio è il nome di un selettore e i parametri per quel selettore.
Un selettore è un simbolo.
Un metodo è un pezzo di codice in una classe identificata da un selettore.
In altre parole, [foo bar: baz]dice "invia il messaggio chiamato @selector(bar:)con il parametro bazall'oggetto foo. È possibile inviare quel messaggio a molti oggetti diversi.
Al contrario, potrebbe sembrare il metodo bar: per unFoo
-(int)bar:(int)n {
return n + 1;
}
ma per un FooTwoaspetto simile
-(int)bar:(int)n {
return n + 2;
}
(Spero di avere la sintassi corretta; è passato un po 'di tempo dall'ultima volta che ho toccato Objective-C.)
Quando si invia il messaggio, il kernel Objective-C invia il messaggio a foocui decide se capisce il messaggio. Decide questo in base alla possibilità di trovare un metodo identificato da quel selettore.
Due metodi con lo stesso nome e un messaggio.
È anche possibile che un oggetto inoltri semplicemente un determinato messaggio (o set di messaggi) a un altro oggetto per l'elaborazione. In questo caso, si invia un messaggio a questo oggetto proxy, che non ha metodi per abbinare quel messaggio , e il proxy inoltra il messaggio al suo oggetto spostato.