Komunikat to nazwa selektora i parametry tego selektora.
Selektor to symbol.
Metoda jest fragmentem kodu w klasie identyfikowanej przez selektor.
Innymi słowy, [foo bar: baz]
mówi „wyślij wiadomość wywoływaną @selector(bar:)
z parametrem baz
do obiektu foo
. Możesz wysłać tę wiadomość do wielu różnych obiektów.
W przeciwieństwie do tego może wyglądać metoda bar:
Foo
-(int)bar:(int)n {
return n + 1;
}
ale dla pewnej FooTwo
może wyglądać
-(int)bar:(int)n {
return n + 2;
}
(Mam nadzieję, że mam poprawną składnię; minęło trochę czasu, odkąd ostatnio dotknąłem Celu C).
Kiedy wysyłasz wiadomość, jądro Objective-C wysyła wiadomość, do foo
której decyduje, czy ją rozumie. Decyduje to na podstawie tego, czy może znaleźć metodę zidentyfikowaną przez ten selektor.
Dwie metody o tej samej nazwie i jedna wiadomość.
Obiekt może również po prostu przesłać określoną wiadomość (lub zestaw wiadomości) do innego obiektu w celu przetworzenia. W takim przypadku wiadomość jest wysyłana do tego obiektu proxy, który nie ma metod dopasowania tej wiadomości , a serwer proxy przesyła wiadomość do zawiniętego obiektu.