Повідомлення - це ім'я селектора та параметри цього селектора.
Селектор - символ.
Метод - це фрагмент коду в класі, ідентифікований селектором.
Іншими словами, [foo bar: baz]говорить "надіслати повідомлення, викликане @selector(bar:)параметром, bazна об'єкт foo. Ви можете надіслати це повідомлення багатьом різним об'єктам.
На противагу цьому може бути такий метод bar: для Fooсили
-(int)bar:(int)n {
return n + 1;
}
але для FooTwoсили може виглядати так
-(int)bar:(int)n {
return n + 2;
}
(Я сподіваюся, що я маю право на синтаксис; минуло певний час, коли я останній раз торкнувся Objective-C.)
Коли ви надсилаєте повідомлення, ядро Objective-C посилає повідомлення, fooяке вирішує, чи розуміє воно повідомлення. Він вирішує це на основі того, чи може він знайти метод, визначений цим селектором.
Два методи з однаковою назвою та одне повідомлення.
Також об'єкт може просто переслати певне повідомлення (або набір повідомлень) іншому об'єкту для обробки. У цьому випадку ви надсилаєте повідомлення цьому проксі-об'єкту, який не має методів відповідності цьому повідомленню , і проксі-сервер пересилає повідомлення його обгорнутому об'єкту.