Anonymous Quiz
6%
Struct передается по ссылке
3%
Class передается по значению
80%
Struct не поддерживает наследование
11%
Class не может быть частью коллекции
💊5
dispatch_async — выполняет задачу асинхронно, не дожидаясь завершения, и позволяет продолжить выполнение кода.
dispatch_sync — запускает задачу синхронно и блокирует текущий поток до её окончания. Используется, когда важно дождаться результата, но может привести к зависанию, если применён неаккуратно.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
2%
Functions
92%
Closures
4%
Delegates
2%
Extensions
Anonymous Quiz
22%
Использование делегатов
7%
Применение шаблона Mediator
68%
Реализация событий с помощью NotificationCenter
3%
Создание внутренней шины событий
💊19
Проблема возникает, когда задача с более низким приоритетом получает доступ к ресурсу раньше задачи с высоким приоритетом. Это может происходить из-за отсутствия синхронизации или блокировок — пример: priority inversion.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
22%
Протоколы
24%
Абстрактные классы
51%
Наследование
3%
Интерфейсы
💊7
Anonymous Quiz
20%
Observer
63%
Delegate
5%
Singleton
12%
Factory
💊3
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Anonymous Quiz
14%
&
51%
|
31%
^
4%
~
🤔2
Anonymous Quiz
51%
Использование Dynamic Frameworks
17%
Загрузка библиотек в рантайме
9%
Применение plug-in архитектуры
23%
Интеграция с серверным API для расширения функционала
💊3
Fetched Property — это динамическая связь, основанная на предопределённом запросе (fetch request). В отличие от обычных связей (relationship), она:
- не кешируется;
- выполняет отдельный запрос каждый раз при доступе;
- может фильтровать или выбирать связанные объекты по более сложным правилам.
Это полезно в случаях, когда нужно получить связанные данные по определённым условиям, но нужно учитывать, что производительность ниже, чем у обычной связи.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
83%
true
7%
false
9%
nil
1%
0
💊4
Anonymous Quiz
23%
OperationQueue
73%
DispatchQueue
2%
RunLoop
1%
Timer
Это шаблон разделения кода на логику данных, отображение и обработку событий.
Применяется, когда:
- Нужно четкое разделение логики и UI.
- Разрабатывается многоразовый код (модель может использоваться в разных частях приложения).
- Упрощается тестирование – можно тестировать Model и Controller отдельно от View.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
7%
public
37%
private
50%
internal
6%
protected
Anonymous Quiz
21%
Использование делегирования
19%
Реализация кастомных событий с замыканиями
59%
Использование KVO (Key-Value Observing)
1%
Применение паттерна Command
💊5
Компилятор автоматически оборачивает выражение в замыкание. Используется, например, в функциях вроде assert, чтобы отложить выполнение до нужного момента и сохранить читаемость.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
🤔2
Anonymous Quiz
18%
Comparable
7%
Hashable
70%
Equatable
5%
Equality
Anonymous Quiz
15%
Оптимизация
2%
Деплоймент
81%
Рефакторинг
2%
Профилирование
- При инициализации и отображении контроллера (вручную или через навигацию).
- Основные методы:
- viewDidLoad()
- viewWillAppear()
- viewDidAppear()
- viewWillDisappear()
- viewDidDisappear()
Чтобы вызвать жизненный цикл вручную:
- Представить контроллер:
- Или встроить в навигацию:
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM