Подборка объединяет вопросы, отмеченные на этапах интервью в БКС инвестиции. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: refactoring, mobile, optimization.
Чем отличаются weak и unowned в Swift и в каких случаях выбирают unowned? weak — ссылка, которая при уничтожении объекта может стать nil; поэтому она всегда Optional unowned — слабая ссылка без Optional,…
GCD (Grand Central Dispatch) — механизм управления задачами в iOS/macOS. Синхронные задачи (sync): поток, который вызвал задачу, блокируется до момента её завершения. Операции выполняются последовательно, поэтому…
имею опыт unit-тестирования бизнес-логики проверял основные сценарии работы и пограничные случаи применял мок-объекты, чтобы изолировать зависимости создавал тесты с акцентом на поведение функций и валидность данных…
Механизм управления памятью Swift для объектов классов Отслеживает число активных ссылок на объект — счетчик ссылок При добавлении ссылки счётчик увеличивается на 1, при её удалении — уменьшается на 1 После достижения…
динамический массив, использующий динамическое выделение памяти перед добавлением проверяется наличие свободной ёмкости если свободного места недостаточно — резервируется дополнительная память (примерно в 2 раза…
Как ключевое слово final влияет на диспетчеризацию методов? — объектно-ориентированное программирование и оптимизация вызовов — final не позволяет подклассам переопределять метод — для метода с модификатором final…
Модульная структура приложения с SPM SPM представляет собой официальный менеджер пакетов Swift модули создаются в виде отдельных пакетов, каждый из которых содержит собственный Package.swift в состав пакетов могут…
Чем отличаются Array, Set и Dictionary Все три типа предназначены для хранения коллекций данных Array — индексированный упорядоченный список, в котором разрешены дубликаты Set — неупорядоченная коллекция уникальных…
Как проверять асинхронный код? Ожидать завершения асинхронных операций с помощью await, callbacks или promises. Изолировать сетевые обращения, применяя моки и стабы. Проверять последовательные состояния: запуск,…
последовательная очередь обрабатывается в одном потоке, поэтому порядок операций имеет значение deadlock появляется, когда ресурсы взаимно блокируют друг друга для профилактики сокращают пересечения блокировок и…
механизм выбора и вызова функций в runtime (во время выполнения) статическая (early) — компилятор заранее определяет прямой вызов динамическая (late) — реализация метода выбирается во время исполнения с учётом типа…
Как работают DispatchGroup и DispatchSemaphore? Concurrency primitives для iOS/macOS в GCD DispatchGroup — средство координации асинхронных задач помогает отследить завершение всех операций, входящих в группу…