Божечки! Какой голос! Случайно набрел на канал, когда убирал пробелы в знаниях, конкретно в диспетчеризации и влюбился в этот голос! Лайк, подписка и просмотр всех видео на канале, а тут есть что подучить, даже для разраба со стажем
На слайде про Message Dispatch у Parent и Child класса ссылка на один и тот же участок памяти. Вероятно, это ошибка. В остальном все очень круто, спасибо за объяснение и тесты в конце!
А про message dispatch разве поиск не по selector, который является ключом в хеш-таблице, а value - указатель на метод? Поэтому ему не надо обходить каждый элемент в таблице. На каждую таблицу - O(1). Поправьте, если это не так.
логика простая - если метод есть в протоколе (и неважно есть он в extension или нет), в работу включается witness table. она всегда перекрывает direct dispatch