Какие средства и технологии для реализации многопоточности вы использовали в своей практике?
В iOS для реализации многопоточности чаще всего использую следующие средства и технологии:
Читать ответПодготовка к интервью
542 вопроса с собеседований в Avito
Что проверяют на интервью
Подборка объединяет вопросы, отмеченные на этапах интервью в Avito. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: mobile, go, frontend.
Каталог
В iOS для реализации многопоточности чаще всего использую следующие средства и технологии:
Читать ответВременная сложность операции поиска элемента в словаре (например, в Dictionary в Swift или HashMap в Java) обычно считается O(1) — константной, при условии хорошего хэширования и равномерного распределения ключей.
Читать ответЛенивые коллекции — это коллекции, элементы которых вычисляются или загружаются по мере необходимости, а не сразу при создании.
Читать ответUIApplication — это основной класс приложения в iOS, который управляет жизненным циклом приложения и взаимодействием с системой.
Читать ответСемафор — это механизм синхронизации, который используется для управления доступом к общему ресурсу в многопоточной или многопроцессной среде.
Читать ответЗапустить iOS-приложение можно несколькими способами:
Читать ответСлой (CALayer) — это объект, управляющий визуальным содержимым представления (UIView).
Читать ответДля обеспечения работы приложения в фоновом режиме используются различные механизмы iOS, зависящие от типа задачи:
Читать ответМетод setNeedsLayout в iOS используется для уведомления системы, что расположение (layout) представления (UIView) изменилось и его нужно обновить.
Читать ответВ iOS (Swift) типы данных, определённые как value types (например, структуры struct, перечисления enum и базовые типы вроде Int, Double), являются неизменяемыми сами по себе, если они объявлены как константы (let).
Читать ответОсновные сложности при использовании GCD (Grand Central Dispatch) в iOS-приложениях:
Читать ответКлючевое слово indirect ставится перед объявлением всего enum или перед отдельным кейсом, чтобы компилятор знал, что хранить значение нужно косвенно (через ссылку), а не напрямую, чтобы избежать бесконечной рекурсии.
Читать ответ