Да, если захватываешь self внутри замыкания — Swift требует явного self, чтобы избежать непреднамеренного retain cycle и повысить читаемость.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Anonymous Quiz
34%
Использование Codable
28%
Применение JSONSerialization
4%
Использование Type-Safe JSON
33%
Применение Decodable
💊1
Anonymous Quiz
93%
nil
2%
0
3%
Пустая строка
2%
false
Swift поддерживает две семантики:
- Семантика значений — структуры и перечисления, копируются при передаче.
- Семантика ссылок — классы, при передаче копируется ссылка.
Они влияют на поведение данных при передаче между переменными и при работе с памятью.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
💊2
Anonymous Quiz
96%
weak
3%
unowned
0%
optional
1%
lazy
Anonymous Quiz
75%
throw выбрасывает ошибку, throws отмечает функцию
14%
throw отмечает функцию, throws выбрасывает ошибку
7%
Оба термина синонимы
4%
Ни один из них не связан с обработкой ошибок
1. Это значит, что компилятор определяет вызов метода на этапе компиляции.
2. Методы из extension не могут быть переопределены или динамически разрешены через Objective-C runtime.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Anonymous Quiz
43%
static
18%
instance
18%
final
20%
func
💊8
Anonymous Quiz
44%
Использование протоколов для определения интерфейсов
51%
Создание класса-фасада, который агрегирует все системы
4%
Применение наследования для расширения функциональности
1%
Применение наследования для расширения функциональности
Xcode предлагает:
- Интегрированную среду разработки (IDE).
- Инструменты отладки: LLDB, Breakpoints, Debug View Hierarchy.
- Инструменты профилирования: Instruments.
- Интерфейсный редактор: Storyboard, Interface Builder.
- Симуляторы, автотесты, Git-интеграция, Code Review, Device logs.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
69%
8
18%
10
8%
13
5%
14
💊5🤔1
Anonymous Quiz
31%
Использование DispatchOnce
50%
Применение замыкания с захватом состояния
12%
Использование статической переменной в замыкании
7%
Применение once token
💊4
Barriers (dispatch_barrier) в GCD основаны на последовательной синхронизации: они позволяют блокировать доступ к ресурсу и выполнять задачу эксклюзивно, прежде чем продолжится параллельное выполнение. Семафоры (DispatchSemaphore) — это счётчики, которые регулируют количество одновременно работающих потоков или доступ к ресурсу. Оба механизма основаны на примитивах синхронизации ядра.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
18%
Реализация паттерна MVC и использование KVO
17%
Применение MVVM и связывание с помощью библиотеки Bond
62%
Использование паттерна Observer с делегатами
3%
Разработка собственной системы связывания данных
💊10
Anonymous Quiz
14%
При помощи наследования
40%
Используя extension
26%
Создавая wrapper классы
21%
При помощи динамического приведения типов
Голодание (starvation) — это ситуация, когда один поток или задача никогда не получает доступ к ресурсу, потому что другие задачи постоянно занимают его. В GCD это может происходить при приоритете .background, если нет возможности перейти на .userInitiated.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Anonymous Quiz
77%
defer
19%
guard
1%
final
3%
ensure
Anonymous Quiz
20%
Atomic Operations
35%
Mutex Locks
34%
Serial Dispatch Queue
11%
Synchronous Operations
- Designated initializer — основной инициализатор класса, который инициализирует все свойства напрямую.
- Convenience initializer — вспомогательный, использует другие инициализаторы для настройки, делегирует вызов self.init().
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
56%
Использование App Groups
20%
Применение shared UserDefaults
16%
Создание общего CloudKit контейнера
8%
Использование Keychain