UIKit и Core Animation: различия UIView — интерфейсный объект, который отвечает за взаимодействие с пользователем и обработку событий CALayer — низкоуровневый графический слой для отрисовки содержимого и выполнения…
Функция — это именованный или анонимный блок кода, предназначенный для выполнения определённой задачи. Замыкание представляет собой функцию вместе со связанным лексическим контекстом, то есть переменными из внешней…
В жизненном цикле ViewController после вызова viewWillAppear обязательно ли вызывается viewDidAppear? Жизненный цикл VC в iOS UIKit viewWillAppear срабатывает непосредственно перед отображением вида на экране После…
Механизм управления памятью Swift для объектов классов Отслеживает число активных ссылок на объект — счетчик ссылок При добавлении ссылки счётчик увеличивается на 1, при её удалении — уменьшается на 1 После достижения…
Responder Chain представляет собой цепочку UI-объектов, через которую в iOS и macOS обрабатываются касания и другие действия пользователя. Её элементы являются объектами UIResponder, например UIView, UIViewController…
Опыт диагностики утечек памяти и действия при критическом расходе RAM профилирование памяти: использую инструменты профилирования (Valgrind, perf, VisualVM, Memory Profiler) анализ дампов: изучаю heap snapshot и…
Как hitTest определяет нажатие кнопки? В UI и графике проверяется пересечение точки с областью элемента Сначала считываются координаты события: положения курсора или точки касания Затем они сопоставляются с границами…
Чем отличаются Array, Set и Dictionary Все три типа предназначены для хранения коллекций данных Array — индексированный упорядоченный список, в котором разрешены дубликаты Set — неупорядоченная коллекция уникальных…
Как работает RunLoop в iOS-разработке? основной механизм обработки очереди событий в iOS поддерживает бесконечный цикл, в котором обрабатываются события UI, таймеры и задачи обеспечивает асинхронное выполнение задач в…
Как работают autorelease и autorelease pool? управление памятью в Objective-C autorelease: отложенное освобождение объекта autorelease pool: контейнер для объектов, ожидающих освобождения освобождение объектов…
Что представляют собой weak-ссылки и каков принцип их работы? Weak-ссылка — это ссылка, которая не мешает сборщику мусора освободить объект Если объект удерживается только weak-ссылками, он считается доступным для…
Слабые ссылки — это ссылки, которые не препятствуют сборщику мусора GC освобождать объект. В Java для этого применяют класс WeakReference. Для коллекций используют WeakHashMap (ключи в ней являются слабыми ссылками)…