GCD сам по себе не позволяет прерывать задачу. Вы должны реализовать контроль вручную:
- использовать флаги isCancelled,
- или отменять задачу через DispatchWorkItem с проверкой состояния.
Если задача уже исполняется, её нельзя «убить» — только корректно завершить изнутри.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
48%
Использование XCTestExpectation
38%
Применение моков и стабов
10%
Синхронизация выполнения тестов
4%
Запуск тестов в отдельном процессе
Anonymous Quiz
26%
Всегда, когда замыкание захватывает self
61%
Когда замыкание может создать сильную ссылку на self
3%
Если self ссылается на синглтон
10%
Только в асинхронных замыканиях
Стек очищается автоматически, когда завершается функция. Как только стековая рамка функции выходит за пределы контекста вызова — вся память, связанная с ней, сбрасывается. Это обеспечивает высокую производительность, но требует строгой структуры вызовов.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
70%
Observer
6%
Singleton
19%
State
4%
Strategy
👍1
Anonymous Quiz
21%
Принцип единственной ответственности
27%
Принцип открытости/закрытости
15%
Принцип замещения Барбары Лисков
37%
Принцип инверсии зависимостей
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
2%
Использование Promise
48%
Применение DispatchQueue
40%
Использование async/await
10%
Применение Combine
💊4
Anonymous Quiz
96%
Optionals
1%
Enums
0%
Tuples
2%
Closures
SQLite стоит использовать, когда:
- нужна максимальная производительность и контроль;
- требуется небольшой размер хранилища;
- предпочтительна работа с чистыми SQL-запросами;
- не нужны объекты, а только таблицы и строки.
Если говорить просто: Core Data — это удобство и объектная модель, SQLite — гибкость и контроль.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
61%
Использование протокола с фабричными методами
15%
Применение класса с несколькими конструкторами
16%
Создание enum с разными случаями инициализации
8%
Определение статических функций создания в struct
Anonymous Quiz
74%
["key1": "value1", "key2": "value2"]
21%
Dictionary("key1": "value1", "key2": "value2")
0%
{["key1": "value1", "key2": "value2"]}
6%
(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
41%
Использование lazy с модификатором static
21%
Реализация через DispatchQueue.once
27%
Создание lazy переменных с блокировками
10%
Применение атомарных операций для инициализации
Anonymous Quiz
26%
map
47%
compactMap
19%
filter
9%
reduce
Строка — это коллекция символов. Итерироваться можно так же, как и по массиву: посимвольно через for, используя индекс, итератор или методы работы со строками (например, enumerate или split в зависимости от языка).
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
Anonymous Quiz
69%
Использование локальной базы данных с CoreData
13%
Кэширование данных в UserDefaults
5%
Сохранение данных в файловой системе
13%
Применение iCloud для синхронизации
Anonymous Quiz
77%
Enumerations
0%
Classes
8%
Structures
15%
Tuples
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
53%
14%
13%