CALayer — это графическая основа любой UIView. Через него можно управлять отрисовкой, анимациями, тенями, скруглениями и другими эффектами на уровне Core Animation.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
21%
public
5%
private
68%
internal
6%
open
Anonymous Quiz
18%
Использование Unmanaged
45%
Прямые вызовы malloc и free
23%
Применение оберток в C
13%
Отключение ARC для отдельных файлов
С iOS 17 используется
Чтобы сделать класс наблюдаемым, достаточно:
- Отметить его как
- Использовать обычные свойства, без
- SwiftUI будет автоматически отслеживать изменения и обновлять интерфейс.
Это заменяет необходимость в
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Anonymous Quiz
65%
Использование lazy коллекций
7%
Применение in-place модификаций
6%
Создание копий массивов
22%
Оптимизация с помощью autoreleasepool
💊1
Anonymous Quiz
8%
Использование Aspect-oriented programming
31%
Применение method swizzling
35%
Создание custom URLProtocol
27%
Настройка Network Interceptor
GCD сам по себе не позволяет прерывать задачу. Вы должны реализовать контроль вручную:
- использовать флаги isCancelled,
- или отменять задачу через DispatchWorkItem с проверкой состояния.
Если задача уже исполняется, её нельзя «убить» — только корректно завершить изнутри.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
47%
Использование XCTestExpectation
39%
Применение моков и стабов
10%
Синхронизация выполнения тестов
4%
Запуск тестов в отдельном процессе
Anonymous Quiz
28%
Всегда, когда замыкание захватывает self
59%
Когда замыкание может создать сильную ссылку на self
3%
Если self ссылается на синглтон
10%
Только в асинхронных замыканиях
Стек очищается автоматически, когда завершается функция. Как только стековая рамка функции выходит за пределы контекста вызова — вся память, связанная с ней, сбрасывается. Это обеспечивает высокую производительность, но требует строгой структуры вызовов.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
71%
Observer
7%
Singleton
18%
State
4%
Strategy
👍1
Anonymous Quiz
21%
Принцип единственной ответственности
28%
Принцип открытости/закрытости
15%
Принцип замещения Барбары Лисков
37%
Принцип инверсии зависимостей
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
3%
Использование Promise
49%
Применение DispatchQueue
38%
Использование async/await
10%
Применение Combine
💊4
Anonymous Quiz
97%
Optionals
0%
Enums
0%
Tuples
3%
Closures
SQLite стоит использовать, когда:
- нужна максимальная производительность и контроль;
- требуется небольшой размер хранилища;
- предпочтительна работа с чистыми SQL-запросами;
- не нужны объекты, а только таблицы и строки.
Если говорить просто: Core Data — это удобство и объектная модель, SQLite — гибкость и контроль.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
63%
Использование протокола с фабричными методами
14%
Применение класса с несколькими конструкторами
18%
Создание enum с разными случаями инициализации
4%
Определение статических функций создания в struct
Anonymous Quiz
71%
["key1": "value1", "key2": "value2"]
21%
Dictionary("key1": "value1", "key2": "value2")
0%
{["key1": "value1", "key2": "value2"]}
8%
(key1: "value1", key2: "value2")
Элементы массива (Array) в Swift (и других языках) хранятся в непрерывном участке памяти:
- Все значения идут друг за другом — это позволяет быстро получать элементы по индексу (O(1)).
- При увеличении размера массива может происходить перевыделение памяти, чтобы вместить больше элементов.
- В Swift Array — структура с копированием по необходимости (copy-on-write), что делает работу с массивами эффективной и безопасной.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
39%
Использование lazy с модификатором static
27%
Реализация через DispatchQueue.once
24%
Создание lazy переменных с блокировками
9%
Применение атомарных операций для инициализации