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

Вопросы собесов t.me/+wtkjBoN6OI5hNGEy
Задачи t.me/+JQkI4zSOEXtkYzg6
Вакансии t.me/+3o9-Ytdiv_E5OGIy
Download Telegram
🤔 Почему плохо загружать главный поток, и какие есть способы этого не делать?

Почему плохо:
1. Главный поток отвечает за обновление пользовательского интерфейса.
2. Его блокировка приводит к зависанию приложения и ухудшению пользовательского опыта.
3. Возможна ошибка "Application Not Responding" (ANR).
Как избежать:
1. Выполняйте ресурсоемкие задачи (сеть, вычисления) в фоновых потоках с использованием DispatchQueue, NSOperationQueue или Coroutines.
2. Используйте асинхронные операции с callback-ами, Promise, или реактивными библиотеками (RxSwift).
3. Минимизируйте время выполнения операций, требующих обновления UI, чтобы быстрее возвращаться в главный поток.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Как в Swift реализовать задержку в выполнении кода без блокировки потока?
Anonymous Quiz
17%
Использование sleep()
13%
Применение wait()
65%
Использование DispatchQueue.asyncAfter
5%
Применение NSTimer
🤔 Какой принцип нарушает Singleton?

Singleton нарушает принцип Dependency Inversion, так как он жёстко связывает клиентский код с конкретной реализацией. Это усложняет тестирование и замену реализаций. Singleton также нарушает принцип единственной ответственности, так как он отвечает и за управление своим состоянием, и за доступ к объекту. Для решения проблемы рекомендуют использовать DI.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Как в Swift реализовать библиотеку, которая позволяет пользователям добавлять свои собственные функции расширения без перекомпиляции библиотеки?
Anonymous Quiz
5%
Использование плагинов
55%
Применение open классов и методов
30%
Создание API для регистрации пользовательских функций
9%
Использование скриптов на Swift
💊4
🤔 Какой механизм позволяет в Swift обрабатывать несколько ошибок, возникших при выполнении цепочки асинхронных операций?
Anonymous Quiz
68%
try/catch
17%
Error handling внутри каждой операции
7%
Использование futures и promises
7%
Сбор ошибок в массив и их последующая обработка
🤔 Как можно посмотреть утечки?

Инструмент Instruments (особенно Leaks и Allocations) из Xcode позволяет отслеживать живые объекты и найти retain cycles. Также можно использовать Xcode Memory Graph Debugger (в процессе отладки).


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Как называется техника, позволяющая функции принимать переменное количество аргументов в Swift?
Anonymous Quiz
48%
Variadic Parameters
36%
Optional Parameters
9%
Default Parameters
8%
Named Parameters
🤔 Как хранить объекты классов в массиве по weak-ссылке?

Обычно для этого используют обёртку, например WeakBox<T>, где T: AnyObject, и поле weak var value: T
Swift не поддерживает массив weak напрямую.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Как в Swift определить, что все элементы массива соответствуют определенному условию?
Anonymous Quiz
37%
Использование filter
43%
Применение allSatisfy
17%
Использование contains
3%
Проверка каждого элемента в цикле
🤔 Как в Swift ограничить доступ к методам базового класса при наследовании?
Anonymous Quiz
42%
Использование private
8%
Применение internal
48%
Декларирование метода как final
1%
Использование restricted
💊2
🤔 Что такое регулярное выражение?

Регулярное выражение — это шаблон для поиска и обработки строк. Используется для валидации формата (email, номера), поиска подстрок, замены текста по шаблону и разбора сложных строк.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Как в Swift можно автоматически проверить и применить миграции моделей данных при обновлениях приложения?
Anonymous Quiz
41%
Использование DataMigrationManager
38%
Применение CoreData Versioning
14%
Использование UserDefaults для трекинга версий
7%
Применение Automatic Schema Evolution
🤔 Как называется специальный тип в Swift, который может содержать либо значение, либо nil?
Anonymous Quiz
1%
Ссылочный тип
1%
Примитивный тип
97%
Опционал
1%
Указатель
🤔 Кто обрабатывает тач и как и куда он проходит?

1. Система получает событие тача через сенсорный экран и передаёт его в UIKit.
2. UIKit определяет целевой объект (UIView) на основе его координат.
3. Событие передаётся в методы touchesBegan, touchesMoved, touchesEnded или touchesCancelled.
4. Если объект не обрабатывает событие, оно передаётся следующему объекту в цепочке обработки событий (responder chain).


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
💊1
🤔 Как Swift обеспечивает безопасность типов при работе с некорректными или отсутствующими данными?
Anonymous Quiz
67%
Использование Optionals
10%
Проверка типов на этапе выполнения
13%
Применение строгих правил компиляции
10%
Использование throws и catch
🤔 Как в Swift реализовать потокобезопасный доступ к свойству с минимальными затратами на производительность?
Anonymous Quiz
37%
Использование DispatchQueue
40%
Использование NSLock
10%
Применение атомарных операций
13%
Применение atomic свойств
🤔 Разница между AVN и INP?

AVN — это, вероятно, описка. INP (Interaction to Next Paint) — новая метрика от Google, измеряющая отзывчивость интерфейса. Она показывает, как быстро интерфейс реагирует на пользовательские действия.


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