Spec-Zone.ru › GCC 11

Предыдущий: Быстрое перечисление, Вверх: Особенности GNU Objective-C [Оглавление][Индекс]

8.10 Отправка сообщений с помощью GNU Objective-C Runtime ¶

Этот раздел относится к GNU Objective-C runtime. Если вы используете другой runtime, можете его пропустить.

Реализация отправки сообщений в GNU Objective-C runtime разработана для переносимости и основана на стандартном C.

Отправка сообщения в GNU Objective-C runtime состоит из двух отдельных шагов. Во-первых, происходит вызов функции поиска, objc_msg_lookup () (или, в случае сообщений в super, objc_msg_lookup_super ()). Эта функция runtime принимает в качестве аргументов получателя и селектор метода, который нужно вызвать; она возвращает IMP, то есть указатель на функцию, реализующую метод. Второй шаг вызова метода состоит в приведении этого указателя функции к соответствующему типу указателя на функцию и вызове указанной функции с правильными аргументами.

Например, когда компилятор сталкивается с вызовом метода, таким как [object init], он компилирует его в вызов objc_msg_lookup (object, @selector(init)), за которым следует приведение возвращаемого значения к соответствующему типу указателя на функцию, а затем вызов этой функции.

  • Динамическая регистрация методов
  • Обработчик переадресации

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-11.4.0/gcc/Messaging-with-the-GNU-Objective-C-runtime.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API