Swift | Тесты
1.23K subscribers
26 photos
425 links
Cайт easyoffer.ru
Реклама @easyoffer_adv
ВП @easyoffer_vp

Вопросы собесов t.me/+wtkjBoN6OI5hNGEy
Задачи t.me/+JQkI4zSOEXtkYzg6
Вакансии t.me/+3o9-Ytdiv_E5OGIy
Download Telegram
🤔 Какой метод используется для преобразования коллекции в массив в Swift?
Anonymous Quiz
23%
toArray()
24%
array()
14%
convertToArray()
39%
map(_:)
🤔 Есть ли отличия value тайпа от референса тайпа?

Главное отличие между value types и reference types заключается в том, что value types копируются при передаче, а reference types передаются по ссылке. Это значит, что изменение value types в одной переменной не затрагивает другие переменные, тогда как изменение reference types влияет на все ссылки на объект. Value types обеспечивают большую безопасность и предсказуемость при работе с неизменяемыми данными. Reference types позволяют легче работать с общими изменяемыми данными, но могут привести к ошибкам синхронизации.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🤔 Что используется для управления памятью объектов без владельцев?
Anonymous Quiz
37%
weak
9%
strong
48%
unowned
5%
soft
💊3
🤔 Как опционалы хранятся в памяти?

Опционалы реализованы как enum с двумя состояниями: .none и .some(Value). В памяти они занимают больше места, чем просто значение, чтобы вместить флаг наличия данных.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Как в Swift определить, что переменная содержит значение nil?
Anonymous Quiz
73%
== nil
10%
!= nil
13%
.isNil
4%
nilCheck
💊2
🤔 В какой момент проставляется retain/release при использовании ARC?

ARC вставляет вызовы retain и release во время компиляции, когда создаются или уничтожаются сильные ссылки. Это работает прозрачно и синхронно, без необходимости вручную управлять памятью.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Каким образом можно ограничить доступ к методам Swift класса только для других объектов в том же модуле?
Anonymous Quiz
6%
Использование public модификатора
42%
Применение private модификатора
36%
Объявление методов как internal
15%
Ограничение доступа через fileprivate
🤔 Какое ключевое слово используется для создания замыкания, которое захватывает переменные по значению, а не по ссылке?
Anonymous Quiz
31%
value
27%
capture
35%
weak
8%
unowned
🤔 Что известно о типовых приёмах рефакторинга?

Часто используются приёмы: выделение метода, перемещение логики в отдельный класс или слой, замена условных операторов полиморфизмом, переименование для ясности, инверсия зависимости. Главная цель — улучшить читаемость, переиспользуемость и снизить связанность компонентов.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Каким образом в Swift можно реализовать функционал автоматического обновления содержимого приложения в ответ на изменения во внешних данных, используя серверные уведомления?
Anonymous Quiz
59%
Использование WebSockets для постоянного соединения с сервером
16%
Применение push-уведомлений для инициации обновлений
8%
Отслеживание изменений с помощью long-polling техники
16%
Разработка REST API с поддержкой long-running запросов
🤔 Как в Swift можно гарантировать, что изменения в модели данных отражаются в пользовательском интерфейсе в реальном времени?
Anonymous Quiz
8%
Использование NotificationCenter
23%
Применение KVO (Key-Value Observing)
11%
Активация Data Binding
👍1
🤔 В чем особенность верстки каждой ячейки на фрейме?

При верстке UITableViewCell через фреймы приходится вручную рассчитывать все размеры и положения элементов. Это быстрее по производительности, но требует точности и большой ответственности при адаптации под разные экраны.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🤔 Как в Swift реализуется паттерн "Lazy Initialization" для объектов, которые требуют сложной настройки?
Anonymous Quiz
77%
Использование lazy var с замыканием
2%
Использование deferred var
9%
Применение static let
13%
Настройка через init()
👍1
🤔 За счёт чего стек быстрее кучи?

Стек быстрее кучи, потому что операции в стеке, такие как добавление и удаление, имеют фиксированную сложность O(1), благодаря строгому порядку (LIFO). Стек управляется автоматически, без необходимости выделения и освобождения памяти вручную. Куча, напротив, требует больше времени из-за динамического управления памятью и возможных операций фрагментации.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🤔 Какой паттерн проектирования в Swift улучшает тестируемость кода, разделяя зависимости между компонентами?
Anonymous Quiz
18%
Factory
4%
Adapter
74%
Dependency Injection
4%
Facade
👍1💊1
🤔 Как реализовать протокол в Swift так, чтобы он мог быть применен только к определенному типу классов?
Anonymous Quiz
38%
Использование ограничений на типы
19%
Применение уточнения протокола
27%
Указание базового класса в определении протокола
16%
Определение протокола внутри класса
🤔 Что такое frame и bounds?

- frame — прямоугольник, описывающий позицию и размер вью относительно её супервью. Включает координаты и размеры.
- bounds — прямоугольник, описывающий внутреннюю систему координат самой вью. Его origin по умолчанию (0, 0).
Пример:
Если вьюшка смещена вправо и вниз, её frame.origin будет (x, y), но bounds.origin всё равно (0, 0) — пока ты явно не изменишь его (например, при скроллинге).


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM