
### 3) Message Dispatch (самая динамическая диспетчеризация)

> Работает с указателями на методы Objective-C в runtime

* Во время выполнения программы (**в runtime**) на основании указателя на метод система вызывает его;
* Позволяет реализовать [полиморфизма из ООП](/2%20ComputerScience/2.2%20Languages/2.2.2%20Paradigm/2.2.2.2%20Imperative/2.2.2.2.2%20OOP.md);
* Еще более динамическое поведение, чем у табличной;
* Позволяет swizzling/isa-swizzling;

В Obj-C используется message Dispatch. У каждого объекта есть ссылка issa (объект класса, не экзампляр), где хранится словарь с ключами в виде selector`а и значениями в виде ссылки на функции. Когда вызывается метод туда передается селектор и сам объект (который этот метод вызывает), которому придет это сообщение.

![messageDispatch](/pictures/Swift/messageDispatch.png?raw=true)

---

[5.6.3 Table Dispatch Theme](./5.6.3%20TableDispatch.md) | [Back To iTWiki Contents](https://github.com/eldaroid/iTWiki) | [End](https://github.com/eldaroid/iTWiki)