Чем отличаются weak и unowned в Swift и в каких случаях выбирают unowned? weak — ссылка, которая при уничтожении объекта может стать nil; поэтому она всегда Optional unowned — слабая ссылка без Optional,…
Механизм управления памятью Swift для объектов классов Отслеживает число активных ссылок на объект — счетчик ссылок При добавлении ссылки счётчик увеличивается на 1, при её удалении — уменьшается на 1 После достижения…
Чем отличаются Array, Set и Dictionary Все три типа предназначены для хранения коллекций данных Array — индексированный упорядоченный список, в котором разрешены дубликаты Set — неупорядоченная коллекция уникальных…
Как устроен ARC и в чём его отличие от MRC? Контекст: управление памятью в Objective-C и Swift MRC (Manual Retain-Release): разработчик самостоятельно вызывает retain и release при неверном подсчёте ссылок легко…
Как работают autorelease и autorelease pool? управление памятью в Objective-C autorelease: отложенное освобождение объекта autorelease pool: контейнер для объектов, ожидающих освобождения освобождение объектов…
Optional представляет собой контейнер, который может содержать значение или nil Собственный аналог Optional можно описать через enum с вариантами .some и .none Вложенный Optional, например Int???, — это Optional,…
Хранение weak-ссылок в массиве, например на UIViewControllers context: iOS/Swift, память и ARC стандартные коллекции не хранят weak-ссылки напрямую, поскольку для них требуется специальный тип-обертка слабую ссылку…
Основные типы ссылок в Swift управление памятью с помощью ARC (Automatic Reference Counting) strong — удерживает объект и увеличивает его счётчик ссылок weak — не удерживает объект и не увеличивает счётчик; ссылка…
уровни доступа и модификаторы видимости в Swift В Swift предусмотрено пять базовых уровней: open, public, internal, fileprivate и private open: наиболее широкий доступ; элемент виден из любого модуля, а наследование и…
Как работает Optional в Swift? это тип данных, предназначенный для хранения значения или указания на его отсутствие он представлен перечислением с вариантами case .some(значение) и .none помогает избежать crash при…
Что такое indirect enum в Swift? Swift, перечисления (enum), программирование indirect разрешает создавать рекурсивные case case содержит ссылку, а не само значение применяется для описания составных структур:…