1. Главный поток отвечает за обновление пользовательского интерфейса.
2. Его блокировка приводит к зависанию приложения и ухудшению пользовательского опыта.
3. Возможна ошибка "Application Not Responding" (ANR).
Как избежать:
1. Выполняйте ресурсоемкие задачи (сеть, вычисления) в фоновых потоках с использованием DispatchQueue, NSOperationQueue или Coroutines.
2. Используйте асинхронные операции с callback-ами, Promise, или реактивными библиотеками (RxSwift).
3. Минимизируйте время выполнения операций, требующих обновления UI, чтобы быстрее возвращаться в главный поток.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
64%
Когда существует круговая ссылка, но один из объектов будет жить всегда
12%
Для временных ссылок на экземпляры
21%
Когда оба объекта могут быть уничтожены одновременно
3%
Для создания сильных ссылок в замыканиях
Anonymous Quiz
17%
Использование sleep()
13%
Применение wait()
65%
Использование DispatchQueue.asyncAfter
6%
Применение NSTimer
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
6%
Использование плагинов
57%
Применение open классов и методов
29%
Создание API для регистрации пользовательских функций
7%
Использование скриптов на Swift
💊4
Anonymous Quiz
67%
try/catch
17%
Error handling внутри каждой операции
8%
Использование futures и promises
8%
Сбор ошибок в массив и их последующая обработка
Инструмент Instruments (особенно Leaks и Allocations) из Xcode позволяет отслеживать живые объекты и найти retain cycles. Также можно использовать Xcode Memory Graph Debugger (в процессе отладки).
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
46%
Variadic Parameters
39%
Optional Parameters
7%
Default Parameters
7%
Named Parameters
Anonymous Quiz
36%
Использование рекурсивных функций с try/catch
23%
Применение стека транзакций с проверками состояния
30%
Использование defer для роллбэка в каждой транзакции
11%
Применение шаблона Command для управления транзакциями
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
38%
Использование filter
40%
Применение allSatisfy
18%
Использование contains
4%
Проверка каждого элемента в цикле
Anonymous Quiz
40%
Использование private
10%
Применение internal
50%
Декларирование метода как final
0%
Использование restricted
💊1
Регулярное выражение — это шаблон для поиска и обработки строк. Используется для валидации формата (email, номера), поиска подстрок, замены текста по шаблону и разбора сложных строк.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
40%
Использование DataMigrationManager
37%
Применение CoreData Versioning
15%
Использование UserDefaults для трекинга версий
8%
Применение Automatic Schema Evolution
Anonymous Quiz
1%
Ссылочный тип
1%
Примитивный тип
96%
Опционал
1%
Указатель
2. UIKit определяет целевой объект (UIView) на основе его координат.
3. Событие передаётся в методы touchesBegan, touchesMoved, touchesEnded или touchesCancelled.
4. Если объект не обрабатывает событие, оно передаётся следующему объекту в цепочке обработки событий (responder chain).
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
65%
Использование Optionals
12%
Проверка типов на этапе выполнения
15%
Применение строгих правил компиляции
8%
Использование throws и catch
Anonymous Quiz
32%
Использование DispatchQueue
45%
Использование NSLock
9%
Применение атомарных операций
14%
Применение atomic свойств
AVN — это, вероятно, описка. INP (Interaction to Next Paint) — новая метрика от Google, измеряющая отзывчивость интерфейса. Она показывает, как быстро интерфейс реагирует на пользовательские действия.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
💊2
Anonymous Quiz
0%
Методы в struct не могут изменять свойства
6%
Методы в struct всегда статические
21%
Методы в class могут быть объявлены как final
74%
Методы в struct требуют явного указания модификатора mutating для изменения свойств