Что за селектор? - PullRequest
       9

Что за селектор?

0 голосов
/ 10 марта 2012

Стэнфордский университет, CS193p, лекция 3 , стр. 45

Я тоже это читал

Документация по программированию Objective-C, селекторы

Все еще не может понять ни то, ни другое

Может кто-нибудь объяснить это более четко? Было бы лучше, если бы это было в C / C ++:)

1 Ответ

3 голосов
/ 10 марта 2012

Короче говоря: это имя метода.

В Objective-C вызов метода работает иначе, чем, скажем, в C ++. Каждый вызов метода в Objective-C на самом деле является вызовом функции C objc_msgSend или ее разновидностью. Затем эта функция решает, как на самом деле сделать вызов метода. Первый аргумент этой функции - указатель объекта (self), второй - селектор (_cmd, имя метода). Дополнительные аргументы являются аргументами метода. Теперь objc_msgSend ищет, какой скомпилированный метод должен быть вызван для селектора, и затем переходит к нему. Таким образом, селектор «выбирает», какой метод объекта вызывается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...