На странице собраны вопросы по Swift — от проверки базовых принципов до практического применения и архитектурных решений. В подборке чаще встречаются темы: mobile, ios, performance.
Основные темы и навыки
mobile 82ios 75performance 51architecture 45ui 40concurrency 32async 31memory management 30
Форматы вопросов
Поведенческие вопросы106
Технические вопросы63
Лайвкодинг7
System Design1
Ориентировочная сложность
Базовые42
Продвинутые91
Практические44
С чего начать подготовку
Начните с раздела «Поведенческие вопросы» и проверьте, можете ли дать короткий ответ своими словами.
Затем разберите вопросы по теме «mobile» и свяжите ответы с собственным опытом.
Завершите подготовку практикой: проговорите решение, ограничения и возможные альтернативы.
Как проверять асинхронный код? Ожидать завершения асинхронных операций с помощью await, callbacks или promises. Изолировать сетевые обращения, применяя моки и стабы. Проверять последовательные состояния: запуск,…
последовательная очередь обрабатывается в одном потоке, поэтому порядок операций имеет значение deadlock появляется, когда ресурсы взаимно блокируют друг друга для профилактики сокращают пересечения блокировок и…
Как предотвратить утечки памяти в escaping-замыканиях? Escaping-замыкание продолжает существовать после завершения вызова, например в callback или async-коде Чаще всего утечку вызывают сильные ссылки на self,…
Как устроен ARC и в чём его отличие от MRC? Контекст: управление памятью в Objective-C и Swift MRC (Manual Retain-Release): разработчик самостоятельно вызывает retain и release при неверном подсчёте ссылок легко…
Как работает RunLoop в iOS-разработке? основной механизм обработки очереди событий в iOS поддерживает бесконечный цикл, в котором обрабатываются события UI, таймеры и задачи обеспечивает асинхронное выполнение задач в…
механизм выбора и вызова функций в runtime (во время выполнения) статическая (early) — компилятор заранее определяет прямой вызов динамическая (late) — реализация метода выбирается во время исполнения с учётом типа…
Словарь (Dictionary) — коллекция, в которой данные представлены парами ключ-значение, причём каждый ключ уникален В основе лежит хеш-таблица, обеспечивающая быстрый доступ к элементам Ключи обязаны соответствовать…
Как работают DispatchGroup и DispatchSemaphore? Concurrency primitives для iOS/macOS в GCD DispatchGroup — средство координации асинхронных задач помогает отследить завершение всех операций, входящих в группу…
Как работают autorelease и autorelease pool? управление памятью в Objective-C autorelease: отложенное освобождение объекта autorelease pool: контейнер для объектов, ожидающих освобождения освобождение объектов…
Что представляют собой weak-ссылки и каков принцип их работы? Weak-ссылка — это ссылка, которая не мешает сборщику мусора освободить объект Если объект удерживается только weak-ссылками, он считается доступным для…
Как распознать цикл сильных ссылок и предотвратить утечку памяти? управление памятью и работа сборщика мусора цикл сильных ссылок возникает, когда объекты напрямую удерживают ссылки друг на друга GC не освобождает…
Слабые ссылки — это ссылки, которые не препятствуют сборщику мусора GC освобождать объект. В Java для этого применяют класс WeakReference. Для коллекций используют WeakHashMap (ключи в ней являются слабыми ссылками)…