UIWindow наследуется от UIView, а значит, участвует в иерархии отображения. Она представляет основное окно, в котором располагаются все видимые элементы приложения.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
91%
Определение private init()
4%
Использование closed init()
1%
Использование public init()
4%
Определение protected init()
Anonymous Quiz
83%
lazy var
4%
deferred loading
6%
onAppear
7%
loadViewIfNeeded
💊4
Подписку следует удалить в момент, когда экран становится невидимым:
- В UIKit: viewWillDisappear или viewDidDisappear.
- В SwiftUI: onDisappear.
Также важно:
- Для Combine использовать AnyCancellable и занулять его (cancellable = nil).
- В RxSwift — использовать disposeBag или вручную вызывать dispose().
Это предотвращает утечки памяти и ненужную работу подписки в фоне.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
94%
Использование паттерна "Observer" с NotificationCenter
4%
Применение делегатов и протоколов
1%
Разработка кастомной системы событий с использованием замыканий
0%
Внедрение обработчиков событий через наследование
💊6
Anonymous Quiz
77%
Использование declarative syntax
19%
Применение imperative programming
1%
Использование manual layout
3%
Применение direct manipulation
- Каждый поток должен использовать отдельный NSManagedObjectContext.
- Контексты не являются потокобезопасными, и попытка использовать один и тот же контекст из разных потоков приведёт к сбоям.
- Для передачи объектов между контекстами нужно использовать NSManagedObjectID, а не сами объекты.
- При сохранении одного контекста необходимо либо вручную уведомлять другие контексты об изменениях, либо включить automaticallyMergesChangesFromParent.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3💊1
Anonymous Quiz
49%
Xcode Instruments
12%
Swift Profiler
36%
Memory Analyzer
4%
Performance Monitor
💊1
Anonymous Quiz
79%
Использование DispatchGroup
14%
Применение нескольких DispatchQueue.async
8%
Запуск последовательных DispatchQueue.sync
0%
Создание массива Future объектов
Вес массива зависит от количества элементов и их типа. Например, массив из 100 Int (по 8 байт каждый) займёт примерно 800 байт. Если массив содержит объекты, то он хранит ссылки, а сами объекты лежат в куче. Также учитывается внутренний буфер и выравнивание.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
💊2
Anonymous Quiz
45%
?
3%
!
50%
??
2%
&
Anonymous Quiz
51%
Использование паттерна State
25%
Применение инъекций зависимостей
9%
Модификация свойств объекта
15%
Создание наследников класса
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%
Для временных ссылок на экземпляры
20%
Когда оба объекта могут быть уничтожены одновременно
4%
Для создания сильных ссылок в замыканиях
Anonymous Quiz
22%
Использование sleep()
9%
Применение wait()
64%
Использование DispatchQueue.asyncAfter
4%
Применение NSTimer
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
6%
Использование плагинов
56%
Применение open классов и методов
31%
Создание API для регистрации пользовательских функций
6%
Использование скриптов на Swift
💊1
Anonymous Quiz
61%
try/catch
22%
Error handling внутри каждой операции
10%
Использование futures и promises
7%
Сбор ошибок в массив и их последующая обработка
Инструмент Instruments (особенно Leaks и Allocations) из Xcode позволяет отслеживать живые объекты и найти retain cycles. Также можно использовать Xcode Memory Graph Debugger (в процессе отладки).
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM