Проверяет понимание внутреннего устройства ARC и управления дополнительной информацией об объекте.
Side table в ARC используется для хранения дополнительной информации об объекте, которая не помещается в основной объект (например, weak-ссылки, unowned-ссылки, флаги).
У каждого объекта в Swift есть битовое поле (битовая маска), в котором хранятся основные данные ARC: strong count, flags и т.п.
Но иногда информации становится слишком много (например, когда есть weak-ссылки).
Тогда создаётся side table — вспомогательная структура в куче, связанная с объектом.
Используется для:
Хранения weak-таблиц (отслеживания weak-ссылок).
Управления флагами (например, deallocating).
Когда объект участвует в более сложной схеме владения.
Зачем это нужно:
Экономия памяти: большинство объектов не нуждаются в side table.
Повышение производительности: основные объекты остаются лёгкими.