Ответ
Счетчик ссылок хранится в заголовке объекта (object header) — внутренней структуре данных, управляемой runtime.
Пример (Objective-C, для иллюстрации):
NSObject *obj = [[NSObject alloc] init];
// retainCount доступен, но его прямое использование не рекомендуется
NSUInteger count = [obj retainCount];
Ключевые моменты:
- В Swift счетчик ссылок полностью скрыт от разработчика.
- ARC (Automatic Reference Counting) автоматически управляет увеличением и уменьшением этого счетчика.
- Не следует полагаться на
retainCountв продакшн-коде, так как его значение может быть неточным из-за внутренних оптимизаций runtime. - Для
weak(слабых) ссылок используется отдельная структура — таблица слабых ссылок (weak table).