Когда пользователь касается экрана, происходит следующий процесс:
1. Аппаратный слой (дисплей) фиксирует касание и передаёт его в iOS.
2. Система генерирует объект события (UIEvent, UITouch).
3. Событие передаётся в главное окно (UIWindow) и далее — вью-контроллерам и иерархии UIView.
4. Система запускает hit-testing — определяет, какая вьюшка находится под точкой касания.
5. Вызываются методы:
- hitTest(_:with:) — определяет целевую вью.
- touchesBegan(_:with:), touchesMoved, touchesEnded — передают событие в конкретную вью.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
45%
Использование atomic свойств
18%
Применение DispatchQueue с барьером
35%
Использование NSLock
2%
Применение volatile
💊3
Anonymous Quiz
74%
let
21%
readonly
4%
const
1%
var
По умолчанию Operation — это одноразовая, неблокирующая, однопоточная операция, реализуемая через BlockOperation или кастомный подкласс Operation. Её тип — абстрактный базовый класс, от которого нужно наследоваться или использовать конкретные реализации (например, BlockOperation). По умолчанию операция выполняется синхронно, пока не будет помещена в OperationQueue, где она становится асинхронной.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
83%
Откладывает выполнение кода до выхода из текущего блока
5%
Задерживает вызов функции
2%
Определяет последовательность выполнения потоков
11%
Гарантирует выполнение кода после условного оператора
Anonymous Quiz
19%
DispatchGroup асинхронно уведомляет о завершении
50%
Semaphore ограничивает количество параллельных доступов
7%
DispatchGroup требует ручного управления
24%
Semaphore используется только для блокировки потоков
Опционалы позволяют безопасно выражать возможность отсутствия значения (nil) на уровне типов. Это предотвращает случайные ошибки и делает код более предсказуемым.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
44%
Использование lazy var
23%
Применение singleton с ленивой инициализацией
15%
Создание static фабричного метода с кэшированием
17%
Определение глобальной lazy функции
Anonymous Quiz
33%
Использование & для соединения протоколов
56%
Перечисление протоколов через запятую
8%
Определение каждого протокола в отдельном generic
3%
Использование массива протоколов
Избегать dynamic,
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
64%
DispatchGroup
25%
AsyncAwait
11%
OperationQueue
0%
CompletionHandler