> Как работает механизм управления памятью ARC в Swift (iOS, Swift)
Уровень: senior · Роль: mobile · Категория: Технические вопросы
Компании: Битрикс24
Стек: iOS, Swift
> Пример ответа
ARC (Automatic Reference Counting) - это механизм управления памятью в Swift, который автоматически отслеживает и освобождает память, занимаемую экземплярами классов. В отличие от ручного управления (как в C) или сборщика мусора (как в Java), ARC работает на этапе компиляции и runtime, вставляя вызовы retain и release для подсчёта ссылок на объекты.
Каждый объект класса имеет счётчик ссылок (reference count). Когда создаётся новая сильная ссылка (strong reference) на объект, счётчик увеличивается на 1. Когда ссылка исчезает (например, переменная выходит из области видимости), счётчик уменьшается. Когда счётчик достигает 0, объект немедленно деаллоцируется.
ARC автоматически управляет сильными ссылками, но разработчик должен избегать циклических ссылок (retain cycles), используя слабые (weak) или бесхозные (unowned) ссылки. Например, при работе с замыканиями, которые захватывают self, нужно явно указывать [weak self] или [unowned self].
Пример:
SWIFTclass Person {let name: Stringvar apartment: Apartment?init(name: String) { self.name = name }deinit { print("\(name) deallocated") }}class Apartment {let unit: Stringweak var tenant: Person? // weak, чтобы избежать циклаinit(unit: String) { self.unit = unit }deinit { print("Apartment \(unit) deallocated") }}
В этом примере weak предотвращает retain cycle между Person и Apartment. ARC также оптимизирует производительность: он работает детерминированно (освобождение происходит сразу при обнулении счётчика) и не требует фоновых потоков для сборки мусора.
> Похожие задачи по mobile
Что такое Storyboards и XIB
Как вызвать синхронную задачу на главном потоке, чтобы избежать дедлока
Когда вызывается метод viewDidAppear
Что такое примитивы в Swift и какие они бывают
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью