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

Вопросы собесов t.me/+wtkjBoN6OI5hNGEy
Задачи t.me/+JQkI4zSOEXtkYzg6
Вакансии t.me/+3o9-Ytdiv_E5OGIy
Download Telegram
🤔 Какие различия между HEAD, GET, POST, PUT?

- HEAD — как GET, но без тела. Используется, чтобы узнать метаинформацию (например, размер файла или заголовки) без загрузки содержимого.
- GET — запрашивает данные с сервера. Не изменяет состояние сервера.
- POST — отправляет данные на сервер для создания нового ресурса. Неидемпотентен.
- PUT — отправляет данные для полного обновления существующего ресурса. Идемпотентен.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
💊2
🤔 Какой протокол в Swift позволяет типу быть представимым в виде строки?
Anonymous Quiz
66%
StringRepresentable
17%
CustomStringConvertible
5%
Printable
13%
TextRepresentable
💊3
🤔 Как в Swift использовать ключевое слово where для уточнения контекста протоколов?
Anonymous Quiz
20%
В определении функций
10%
В определении класса
49%
В расширениях и дженериках
21%
В инструкциях if
🤔 Что такое circular dependencies?

Circular dependency (циклическая зависимость) — это ситуация, когда два объекта ссылаются друг на друга, не позволяя ARC освободить память, потому что счётчик ссылок не становится нулём.
Часто возникает с strong-ссылками в делегатах и замыканиях. Решается использованием weak или unowned.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
2
🤔 Какой инструмент в Xcode используется для отладки параллельного кода?
Anonymous Quiz
8%
Visual Debugging
58%
Thread Sanitizer
27%
Memory Graph Debugger
7%
Performance Monitor
🤔 Перечислите все ленивые (lazy) контейнеры/вью?

В SwiftUI ленивые контейнеры загружают и создают представления только по мере необходимости:
- LazyVStack — вертикальный список с ленивой отрисовкой.
- LazyHStack — горизонтальный аналог.
- LazyVGrid — ленивый вертикальный грид.
- LazyHGrid — ленивый горизонтальный грид.
Они эффективны при работе с большим количеством данных или динамическими списками.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
🤔 Какой оператор используется для объединения двух условий в логическое И в Swift?
Anonymous Quiz
4%
and
72%
&&
6%
||
19%
&
🤔 Вопрос: Какой тип данных в Swift используется для хранения текста?
Anonymous Quiz
94%
String
4%
Text
0%
Str
3%
CharArray
🤔 Чем отличается пассивная модель от активной?

Пассивная модель — это подход, при котором объект модели не знает о существовании интерфейса (view) и не уведомляет его об изменениях. Контроллер сам запрашивает обновление данных и обновляет интерфейс вручную.
Активная модель — модель сама уведомляет представление или контроллер об изменениях, обычно через делегаты, нотификации или биндинги. Это повышает реактивность, но усложняет структуру.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Как в Swift создать безопасный и эффективный механизм для изменения значения свойства из разных потоков?
Anonymous Quiz
22%
Использование Atomic классов
2%
Применение volatile переменных
38%
Использование DispatchSemaphore
38%
Обёртывание свойства с DispatchQueue
🤔 Какие стратегии используются в Swift для оптимизации скомпилированного кода с целью улучшения производительности?
Anonymous Quiz
23%
Использование optimization annotations
19%
Применение whole module optimization
13%
Использование incremental builds
45%
Применение dynamic dispatch
Forwarded from easyoffer
Осталось всего 14 дней до завершения краудфандинга

Сейчас самое подходящее время подключиться, если вы ждали или откладывали:

Все, кто поддержат проект сейчас, до релиза, получат:
🚀 PRO-доступ на 1 год по цене месячной подписки
Бета-доступ к EasyOffer 2.0 (конец мая)

👉 Поддержать: https://planeta.ru/campaigns/easyoffer
🤔 Преимущества и недостатки синхронного и асинхронного соединения?

Синхронное соединение:
Преимущества:
- Простота реализации
- Последовательность выполнения
Недостатки:
- Блокирует поток
- Неэффективно при работе с сетью или ожиданием
Асинхронное соединение:
Преимущества:
- Не блокирует основной поток
- Позволяет обрабатывать несколько задач одновременно
Недостатки:
- Более сложная логика
- Труднее отлаживать и тестировать


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Как называется техника, которая позволяет Swift код выполнять асинхронные операции, такие как сетевые запросы или чтение файлов?
Anonymous Quiz
61%
Многопоточность
37%
Асинхронное программирование
1%
Синхронное программирование
1%
Линейное программирование
🤔 Какое ключевое слово в Swift используется для создания условного выполнения кода, если все условия в предыдущих операторах if и else if были ложными?
Anonymous Quiz
15%
guard
59%
else
2%
case
25%
default
🤔 Какие методы борьбы есть против коллизии?

Существует несколько способов разрешения коллизий:
1. Открытая адресация (open addressing) — поиск следующей свободной ячейки по определенному правилу (линейный, квадратичный пробинг).
2. Цепочки (chaining) — элементы с одинаковым хэшем хранятся в связном списке (или массиве) внутри корзины.
3. Двойное хеширование — используется вторичная хэш-функция для расчета смещения.
4. Динамическое увеличение размера таблицы (rehashing) — при увеличении нагрузки пересчитываются хэши с новым размером.
Swift использует цепочки и перехэширование.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Как называется процесс, при котором Swift автоматически управляет памятью, освобождая неиспользуемые объекты?
Anonymous Quiz
2%
Сборка мусора
2%
Ручное управление памятью
95%
Автоматическое управление памятью (ARC)
1%
Рефакторинг
🤔1
🤔 Как в Swift можно защитить чувствительные данные пользователя в памяти?
Anonymous Quiz
8%
Использование Secured Containers
84%
Применение Keychain Services
5%
Использование Data Protection API
3%
Применение On-disk Encryption
🤔 Почему VIPER — это "боль"?

1. Сложность структуры: VIPER разделяет код на множество модулей (View, Interactor, Presenter, Entity, Router), что увеличивает количество файлов.
2. Избыточность кода: Часто создаются дополнительные слои, которые могут быть неоправданны для простых задач.
3. Сложность поддержки: При большом количестве компонентов управление их связями становится трудоемким.
4. Крутая кривая обучения: Требует значительного опыта и дисциплины для корректной реализации.


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