Повідомлення - це ім'я селектора та параметри цього селектора.
Селектор - символ.
Метод - це фрагмент коду в класі, ідентифікований селектором.
Іншими словами, [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
яке вирішує, чи розуміє воно повідомлення. Він вирішує це на основі того, чи може він знайти метод, визначений цим селектором.
Два методи з однаковою назвою та одне повідомлення.
Також об'єкт може просто переслати певне повідомлення (або набір повідомлень) іншому об'єкту для обробки. У цьому випадку ви надсилаєте повідомлення цьому проксі-об'єкту, який не має методів відповідності цьому повідомленню , і проксі-сервер пересилає повідомлення його обгорнутому об'єкту.