Метод pushViewController(_:animated:) используется для навигации вперёд по стеку экранов. Он добавляет новый экран в стек и отображает его с анимацией перехода. Также popViewController(animated:) используется для возврата.
Вот развёрнутые ответы на вопросы, связанные с навигацией, версткой, GCD, безопасностью данных и типизацией в Swift и Vue:
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔1
Anonymous Quiz
70%
Использование 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
44%
Использование atomic свойств
22%
Применение DispatchQueue с барьером
32%
Использование NSLock
2%
Применение volatile
💊5
Anonymous Quiz
73%
let
22%
readonly
4%
const
1%
var
По умолчанию Operation — это одноразовая, неблокирующая, однопоточная операция, реализуемая через BlockOperation или кастомный подкласс Operation. Её тип — абстрактный базовый класс, от которого нужно наследоваться или использовать конкретные реализации (например, BlockOperation). По умолчанию операция выполняется синхронно, пока не будет помещена в OperationQueue, где она становится асинхронной.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
80%
Откладывает выполнение кода до выхода из текущего блока
4%
Задерживает вызов функции
3%
Определяет последовательность выполнения потоков
13%
Гарантирует выполнение кода после условного оператора
Anonymous Quiz
18%
DispatchGroup асинхронно уведомляет о завершении
49%
Semaphore ограничивает количество параллельных доступов
8%
DispatchGroup требует ручного управления
25%
Semaphore используется только для блокировки потоков
Опционалы позволяют безопасно выражать возможность отсутствия значения (nil) на уровне типов. Это предотвращает случайные ошибки и делает код более предсказуемым.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
50%
Использование lazy var
20%
Применение singleton с ленивой инициализацией
15%
Создание static фабричного метода с кэшированием
14%
Определение глобальной lazy функции
💊1
Anonymous Quiz
35%
Использование & для соединения протоколов
57%
Перечисление протоколов через запятую
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
83%
break
3%
continue
2%
exit
13%
return
Anonymous Quiz
50%
infix operator +++: AdditionPrecedence
24%
infix operator +++: DefaultPrecedence
11%
infix operator +++: NormalPrecedence
15%
infix operator +++: StandardPrecedence
Нет, классы в Swift не могут наследоваться от более чем одного суперкласса. Однако Swift поддерживает множественное наследование поведения через соответствие нескольким протоколам.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
Anonymous Quiz
63%
Реализация протокола Numeric
10%
Использование типа NSDecimalNumber
6%
Применение typealias для Double
21%
Расширение существующего типа через extension