await используется для приостановки выполнения текущей функции до завершения асинхронной операции. Оно позволяет писать асинхронный код в линейной, читаемой форме, без колбэков. Пока задача выполняется, поток освобождается, и система может выполнять другие действия.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
    VIEW IN TELEGRAM
  Anonymous Quiz
    0%
    Замыкание, выполняемое немедленно
      
    87%
    Замыкание, переданное как аргумент функции, вызываемое после выхода из этой функции
      
    13%
    Замыкание, хранящееся в памяти до окончания выполнения программы
      
    0%
    Замыкание, использующееся для обработки исключений
      
    Anonymous Quiz
    56%
    15
      
    25%
    18
      
    14%
    20
      
    5%
    22
      
    💊3🤔1
  1. Удобен для координации задач, выполняемых параллельно.
2. Используется для уведомления, когда все задачи завершены.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
    VIEW IN TELEGRAM
  Anonymous Quiz
    1%
    open
      
    2%
    public
      
    89%
    fileprivate
      
    8%
    private
      
    Anonymous Quiz
    1%
    Прямая загрузка из интернета
      
    12%
    Использование UIImage с предварительной обработкой
      
    78%
    Кэширование обработанных изображений
      
    9%
    Декодирование в фоновом потоке
      
    💊3🤔2
  Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
    VIEW IN TELEGRAM
  🔥5
  Anonymous Quiz
    5%
    private
      
    95%
    fileprivate
      
    0%
    internal
      
    0%
    public
      
    💊4
  Anonymous Quiz
    76%
    Использование DispatchQueue.global().async и DispatchQueue.main.async
      
    16%
    Применение asyncAfter и sync
      
    4%
    Использование OperationQueue
      
    3%
    Использование performSelector(inBackground:)
      
    UIWindow наследуется от UIView, а значит, участвует в иерархии отображения. Она представляет основное окно, в котором располагаются все видимые элементы приложения.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
    VIEW IN TELEGRAM
  Anonymous Quiz
    90%
    Определение private init()
      
    4%
    Использование closed init()
      
    1%
    Использование public init()
      
    5%
    Определение protected init()
      
    Anonymous Quiz
    86%
    lazy var
      
    3%
    deferred loading
      
    5%
    onAppear
      
    5%
    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
    93%
    Использование паттерна "Observer" с NotificationCenter
      
    5%
    Применение делегатов и протоколов
      
    1%
    Разработка кастомной системы событий с использованием замыканий
      
    1%
    Внедрение обработчиков событий через наследование
      
    💊9
  Anonymous Quiz
    79%
    Использование declarative syntax
      
    18%
    Применение imperative programming
      
    1%
    Использование manual layout
      
    2%
    Применение direct manipulation
      
    - Каждый поток должен использовать отдельный NSManagedObjectContext.
- Контексты не являются потокобезопасными, и попытка использовать один и тот же контекст из разных потоков приведёт к сбоям.
- Для передачи объектов между контекстами нужно использовать NSManagedObjectID, а не сами объекты.
- При сохранении одного контекста необходимо либо вручную уведомлять другие контексты об изменениях, либо включить automaticallyMergesChangesFromParent.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍3💊1
  Anonymous Quiz
    51%
    Xcode Instruments
      
    10%
    Swift Profiler
      
    32%
    Memory Analyzer
      
    7%
    Performance Monitor
      
    💊1
  Anonymous Quiz
    79%
    Использование DispatchGroup
      
    12%
    Применение нескольких DispatchQueue.async
      
    9%
    Запуск последовательных DispatchQueue.sync
      
    1%
    Создание массива Future объектов
      
    Вес массива зависит от количества элементов и их типа. Например, массив из 100 Int (по 8 байт каждый) займёт примерно 800 байт. Если массив содержит объекты, то он хранит ссылки, а сами объекты лежат в куче. Также учитывается внутренний буфер и выравнивание.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
    VIEW IN TELEGRAM
  💊2
  Anonymous Quiz
    43%
    ?
      
    3%
    !
      
    52%
    ??
      
    2%
    &
      
    Anonymous Quiz
    54%
    Использование паттерна State
      
    24%
    Применение инъекций зависимостей
      
    10%
    Модификация свойств объекта
      
    12%
    Создание наследников класса