Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Что такое AbortController и как он используется в JavaScript для отмены асинхронных операций?
AbortController — это встроенный объект в JavaScript, который позволяет отменять асинхронные операции, такие как запросы через fetch. Он работает вместе с AbortSignal, который передаётся в асинхронную операцию. Если вы вызываете метод abort() у контроллера, операция прерывается, и её результат больше не будет обработан.
В чём основное различие между @RestController и @Controller?
@Controller используется для обработки запросов в традиционных веб-приложениях и возвращает HTML-представления. @RestController автоматически возвращает данные в формате JSON или XML, что делает его идеальным для создания RESTful API.
Как добавить SwiftUI-вью в UIKit-контроллер через UIHostingController?
Создаёте UIHostingController(rootView:) с вашим SwiftUI-вью, добавляете его как дочерний контроллер в UIKit-контроллер, устанавливаете фрейм или constraints, и вызываете addChild/didMove(toParent:). После этого SwiftUI-вью отображается внутри UIKit.
Жизненный цикл ViewController. Если вызвался viewWillAppear, вызовется ли viewDidAppear?
Да, если вызвался viewWillAppear, то viewDidAppear вызовется следом, если только процесс не был прерван (например, аварийно).
В каком методе жизненного цикла ViewController становятся доступны точные размеры frame у view?
Точные размеры frame становятся доступны в viewDidLayoutSubviews(). Это происходит после того, как система рассчитала все constraints и фреймы.
Как хранить weak-ссылки на объекты (например, UIViewControllers) в массиве?
Может ли @RestController возвращать XML, а не JSON?
Как устроен жизненный цикл UIViewController и в каком порядке вызываются его методы?
Как влияет использование UITabBarController на жизненный цикл view-контроллеров?
Когда оправдано использование SwiftUI внутри UIKit через UIHostingController?
Рейтинг:
2
Сложность:
7
Обычный Swift-массив (Array) хранит сильные ссылки на объекты. Чтобы хранить weak-ссылки, можно использовать два основных подхода:
Обертка (Wrapper): Создать структуру или класс-обертку, которая содержит weak-ссылку, и хранить эти обертки в массиве.
NSPointerArray: Использовать класс из Foundation NSPointerArray, сконфигурированный для хранения weak-ссылок с помощью .weakMemory option.
Рейтинг:
3
Сложность:
6
Да, @RestController может возвращать XML вместо JSON. Для этого нужно добавить зависимость для XML-сериализации (например, Jackson XML или JAXB) и настроить производителей медиа-типов. Клиент может запрашивать XML через заголовок Accept: application/xml, а Spring автоматически выберет подходящий формат на основе content negotiation.
Рейтинг:
5
Сложность:
6
Жизненный цикл UIViewController — это последовательность методов, которые вызываются системой при создании, показе и скрытии экрана. Сначала контроллер создаётся, затем загружается его view, после чего экран появляется и исчезает. Каждый этап имеет свои методы, предназначенные для конкретных задач. Правильное использование этих методов помогает избежать багов и утечек памяти.
Рейтинг:
4
Сложность:
7
UITabBarController — это контейнер, который держит несколько child-контроллеров и переключает между ними отображение. При переключении табов активный контроллер получает viewWillDisappear/viewDidDisappear, а новый — viewWillAppear/viewDidAppear. При этом контроллеры табов часто создаются заранее, и их viewDidLoad может вызываться в моменты, которые не совпадают с первым “показом пользователю”. Это важно учитывать при инициализации, подписках и обновлении данных.
Рейтинг:
4
Сложность:
6
Использование SwiftUI через UIHostingController оправдано, когда нужно внедрить новые экраны или компоненты без переписывания всего приложения. Это позволяет постепенно внедрять SwiftUI в существующий UIKit-код. Такой подход удобен для изолированных экранов, простых UI-компонентов и быстрых прототипов. Однако он требует аккуратного управления жизненным циклом.
Рейтинг:
5
Сложность:
8
Рейтинг:
3
Сложность:
7
Рейтинг:
2
Сложность:
6
Рейтинг:
2
Сложность:
5
Рейтинг:
2
Сложность:
5