По умолчанию Operation — это одноразовая, неблокирующая, однопоточная операция, реализуемая через BlockOperation или кастомный подкласс Operation. Её тип — абстрактный базовый класс, от которого нужно наследоваться или использовать конкретные реализации (например, BlockOperation). По умолчанию операция выполняется синхронно, пока не будет помещена в OperationQueue, где она становится асинхронной.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
82%
Откладывает выполнение кода до выхода из текущего блока
4%
Задерживает вызов функции
3%
Определяет последовательность выполнения потоков
11%
Гарантирует выполнение кода после условного оператора
Anonymous Quiz
20%
DispatchGroup асинхронно уведомляет о завершении
49%
Semaphore ограничивает количество параллельных доступов
10%
DispatchGroup требует ручного управления
20%
Semaphore используется только для блокировки потоков
Опционалы позволяют безопасно выражать возможность отсутствия значения (nil) на уровне типов. Это предотвращает случайные ошибки и делает код более предсказуемым.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
52%
Использование lazy var
20%
Применение singleton с ленивой инициализацией
13%
Создание static фабричного метода с кэшированием
16%
Определение глобальной lazy функции
Anonymous Quiz
37%
Использование & для соединения протоколов
56%
Перечисление протоколов через запятую
6%
Определение каждого протокола в отдельном generic
2%
Использование массива протоколов
Избегать dynamic,
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
73%
DispatchGroup
20%
AsyncAwait
7%
OperationQueue
0%
CompletionHandler
Anonymous Quiz
5%
Тестирование производительности
12%
Нагрузочное тестирование
76%
Функциональное тестирование
7%
Тестирование безопасности
- При инициализации и отображении контроллера (вручную или через навигацию).
- Основные методы:
- viewDidLoad()
- viewWillAppear()
- viewDidAppear()
- viewWillDisappear()
- viewDidDisappear()
Чтобы вызвать жизненный цикл вручную:
- Представить контроллер:
- Или встроить в навигацию:
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
84%
break
3%
continue
0%
exit
13%
return
Anonymous Quiz
62%
infix operator +++: AdditionPrecedence
26%
infix operator +++: DefaultPrecedence
8%
infix operator +++: NormalPrecedence
5%
infix operator +++: StandardPrecedence
Нет, классы в Swift не могут наследоваться от более чем одного суперкласса. Однако Swift поддерживает множественное наследование поведения через соответствие нескольким протоколам.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Anonymous Quiz
65%
Реализация протокола Numeric
15%
Использование типа NSDecimalNumber
2%
Применение typealias для Double
17%
Расширение существующего типа через extension
Anonymous Quiz
33%
Способ хранения значений любого типа
28%
Контейнер для ассоциированных типов
38%
Способ использовать протоколы как типы данных
0%
Механизм для обработки ошибок протоколов
Это механизм динамического диспетчинга в Swift, используемый для работы с протоколами.
- Если структура или класс реализуют протокол, Swift создает Witness Table, хранящую указатели на методы.
- Это позволяет динамически вызывать методы, объявленные в протоколе, даже если тип не известен во время компиляции.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
60%
Key-Value Observing (KVO)
35%
NotificationCenter
5%
Delegation
0%
Combine