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%
    Создание наследников класса
      
    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
    66%
    Когда существует круговая ссылка, но один из объектов будет жить всегда
      
    11%
    Для временных ссылок на экземпляры
      
    20%
    Когда оба объекта могут быть уничтожены одновременно
      
    3%
    Для создания сильных ссылок в замыканиях
      
    Anonymous Quiz
    16%
    Использование sleep()
      
    11%
    Применение wait()
      
    67%
    Использование DispatchQueue.asyncAfter
      
    6%
    Применение NSTimer
      
    Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
    VIEW IN TELEGRAM
  Anonymous Quiz
    6%
    Использование плагинов
      
    58%
    Применение open классов и методов
      
    28%
    Создание API для регистрации пользовательских функций
      
    8%
    Использование скриптов на Swift
      
    💊4
  Anonymous Quiz
    69%
    try/catch
      
    15%
    Error handling внутри каждой операции
      
    8%
    Использование futures и promises
      
    9%
    Сбор ошибок в массив и их последующая обработка
      
    Инструмент Instruments (особенно Leaks и Allocations) из Xcode позволяет отслеживать живые объекты и найти retain cycles. Также можно использовать Xcode Memory Graph Debugger (в процессе отладки).
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
    VIEW IN TELEGRAM
  Anonymous Quiz
    48%
    Variadic Parameters
      
    36%
    Optional Parameters
      
    9%
    Default Parameters
      
    8%
    Named Parameters
      
    Anonymous Quiz
    42%
    Использование рекурсивных функций с try/catch
      
    20%
    Применение стека транзакций с проверками состояния
      
    26%
    Использование defer для роллбэка в каждой транзакции
      
    12%
    Применение шаблона Command для управления транзакциями
      
    Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
    VIEW IN TELEGRAM