Методы layout у UIView и работа с Auto Layout layoutSubviews — главный метод раскладки: он вызывается после изменения фрейма или вызова setNeedsLayout; внутри него размещают сабвью. setNeedsLayout — отмечает view для…
Механизмы управления памятью Стек: быстрое автоматическое выделение и освобождение при ограниченном объёме Куча: динамическое выделение, требующее контроля освобождения и обычно работающее медленнее Сборщик мусора…
Какие области памяти есть кроме стека и кучи Data (Data Segment) — сегмент для глобальных и статических переменных, который создаётся во время загрузки программы BSS (Block Started by Symbol) — часть Data Segment,…
коллекция содержит слабые ссылки на объекты GC освобождает объекты, для которых не осталось сильных ссылок часто выгружаемые объекты быстро превращаются в null внутри коллекции возможна нестабильность данных: элементы…
Основные способы персистентного хранения в iOS UserDefaults — подходит для настроек приложения и небольших данных в формате «ключ — значение» Keychain — используется для защищённого хранения конфиденциальной…
Способы хранения данных в iOS локальное хранение через UserDefaults — небольшие настройки в формате «ключ—значение» Keychain — защищённое хранение паролей и токенов Файлы (Documents, Caches) — сохранение…
статическая загрузка: библиотека подключается во время компиляции, а её код включается в итоговый файл динамическая загрузка: библиотека подключается в процессе выполнения программы (runtime), например DLL или SO…
Основные проблемы многопоточности в iOS Гонка данных (data race) — несколько потоков одновременно обращаются к общему ресурсу без необходимой синхронизации Взаимоблокировка (deadlock) — потоки удерживают ресурсы и…
область: программирование, ООП, вызовы методов Статическая (compile-time): метод определяется во время компиляции Динамическая (run-time): метод выбирается во время выполнения, например при вызове виртуальных методов…
уровни доступа и модификаторы видимости в Swift В Swift предусмотрено пять базовых уровней: open, public, internal, fileprivate и private open: наиболее широкий доступ; элемент виден из любого модуля, а наследование и…
Функции высшего порядка: сравнение map, compactMap и flatMap Функции высшего порядка — это функции, которые получают другие функции в аргументах либо возвращают функцию map применяет преобразование к каждому элементу…
Этапы деинициализации объекта в ARC ARC (Automatic Reference Counting) автоматически управляет памятью в Swift и Objective-C процесс запускается после того, как счетчик ссылок объекта становится равен нулю система…