Имплементация протокола — это реализация всех обязательных требований (свойств и методов), определённых в протоколе. В Swift это делается с помощью ключевого слова protocol, и затем класс, структура или enum, подписываясь на него, реализуют нужный функционал.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
7%
Автоматически шифровать данные
30%
Проверять условия валидности
56%
Переопределять геттеры и сеттеры
6%
Хранить данные в облачном хранилище
Anonymous Quiz
10%
Упрощает доступ к свойствам
84%
Определяет удобный инициализатор
2%
Улучшает производительность
4%
Объявляет протокол
Метод pushViewController(_:animated:) используется для навигации вперёд по стеку экранов. Он добавляет новый экран в стек и отображает его с анимацией перехода. Также popViewController(animated:) используется для возврата.
Вот развёрнутые ответы на вопросы, связанные с навигацией, версткой, GCD, безопасностью данных и типизацией в Swift и Vue:
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔1
Anonymous Quiz
71%
Использование typealias
4%
Использование typedef
24%
Использование generic
2%
Использование multiType
Anonymous Quiz
10%
Создает новый observable при каждой подписке
61%
Откладывает создание observable до первой подписки
18%
Запускает наблюдаемое событие с задержкой
11%
Повторяет события при новой подписке
Когда пользователь касается экрана, происходит следующий процесс:
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
43%
Использование atomic свойств
22%
Применение DispatchQueue с барьером
33%
Использование NSLock
2%
Применение volatile
💊5
Anonymous Quiz
73%
let
23%
readonly
4%
const
1%
var
По умолчанию Operation — это одноразовая, неблокирующая, однопоточная операция, реализуемая через BlockOperation или кастомный подкласс Operation. Её тип — абстрактный базовый класс, от которого нужно наследоваться или использовать конкретные реализации (например, BlockOperation). По умолчанию операция выполняется синхронно, пока не будет помещена в OperationQueue, где она становится асинхронной.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
79%
Откладывает выполнение кода до выхода из текущего блока
4%
Задерживает вызов функции
3%
Определяет последовательность выполнения потоков
14%
Гарантирует выполнение кода после условного оператора
Anonymous Quiz
19%
DispatchGroup асинхронно уведомляет о завершении
49%
Semaphore ограничивает количество параллельных доступов
8%
DispatchGroup требует ручного управления
24%
Semaphore используется только для блокировки потоков
Опционалы позволяют безопасно выражать возможность отсутствия значения (nil) на уровне типов. Это предотвращает случайные ошибки и делает код более предсказуемым.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
51%
Использование lazy var
20%
Применение singleton с ленивой инициализацией
15%
Создание static фабричного метода с кэшированием
14%
Определение глобальной lazy функции
💊1
Anonymous Quiz
34%
Использование & для соединения протоколов
58%
Перечисление протоколов через запятую
7%
Определение каждого протокола в отдельном generic
1%
Использование массива протоколов
Избегать dynamic,
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
75%
DispatchGroup
19%
AsyncAwait
6%
OperationQueue
0%
CompletionHandler
💊2
Anonymous Quiz
4%
Тестирование производительности
12%
Нагрузочное тестирование
77%
Функциональное тестирование
7%
Тестирование безопасности
- При инициализации и отображении контроллера (вручную или через навигацию).
- Основные методы:
- viewDidLoad()
- viewWillAppear()
- viewDidAppear()
- viewWillDisappear()
- viewDidDisappear()
Чтобы вызвать жизненный цикл вручную:
- Представить контроллер:
- Или встроить в навигацию:
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
82%
break
4%
continue
2%
exit
12%
return