Logo
TGCATALOG
Catalog Collections Blog
Swift | Interview Questions

Swift | Interview Questions

Swift interview questions, tests and tasks for iOS developers in Telegram.

No ratings
626
29.10.2026
626
29.10.2026
No ratings
626
29.10.2026
Safe redirect via bot
О канале

Swift interview questions, tests and tasks for iOS developers in Telegram.

Подписчиков 2,148
Тематика Technology
Язык English
Ссылка t.me/easy_swift

We also recommend

Kekaton AI | Voiceover and voice clone
Kekaton AI | Voiceover and voice clone
Bot

AI bot for text-to-speech and voice cloning in Telegram. Create audio using neural network quickly and easily.

Description

The channel is dedicated to preparing for Swift language interviews. It contains current questions, tests, practical tasks and vacancy information. Ideal for beginner and experienced iOS developers who want to refresh their knowledge and successfully pass interviews.

Latest posts

Swift | Interview Questions
Swift | Interview Questions
🔒Открыть пост
и посмотреть медиа
🤔 Что такое верстка на AutoLayout, а что такое верстка на frame? - AutoLayout — это система ограничений (constraints), определяющих расположение элементов вне зависимости от размера экрана. Используется при адаптивной, универсальной верстке. - Frame-верстка — это явное указание координат и размеров каждого элемента. Быстро, но не гибко — плохо масштабируется под разные устройства и ориентации. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Swift | Interview Questions
Swift | Interview Questions
🔒Открыть пост
и посмотреть медиа
🤔 В каком методе жизненного цикла можно поставить отступы к vue? Если вы хотите задать отступы (margins, padding) для UIView в жизненном цикле UIViewController, то важно выбрать правильный момент, когда размеры view уже определены. 🚩Пример установки отступов в `viewDidLayoutSubviews()` class MyViewController: UIViewController { let myView = UIView() override func viewDidLoad() { super.viewDidLoad() myView.backgroundColor = .red view.addSubview(myView) } override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() // Установка отступов (margins) myView.frame = view.bounds.insetBy(dx: 20, dy: 50) } } Ставь 👍 и забирай 📚 Базу знаний
Swift | Interview Questions
Swift | Interview Questions
🔒Открыть пост
и посмотреть медиа
🤔 Что происходит с классом при компиляции? При компиляции в Swift класс проходит несколько стадий обработки: Анализ синтаксиса и семантики – компилятор проверяет код на ошибки. Генерация промежуточного представления (IR) – создаётся код на уровне LLVM IR. Оптимизация – Swift применяет различные оптимизации, например, inlining, dead code elimination и другие. Генерация машинного кода – итоговый код превращается в исполняемый машинный код, специфичный для платформы. 🚩Что конкретно происходит с классом? В отличие от структур, классы в Swift являются ссылочными типами и хранятся в куче (heap). Это означает, что: - При создании объекта выделяется память в куче. - Swift автоматически использует ARC (Automatic Reference Counting) для управления памятью. - Методы класса могут вызываться через виртуальную таблицу (vtable), если класс использует динамическую диспетчеризацию. 🚩Важные моменты - Если класс final, компилятор может оптимизировать вызовы методов, убрав динамическую диспетчеризацию. - Наследование делает вызовы методов менее предсказуемыми (они идут через vtable). - В отличие от структур, классы не копируются при передаче в функцию, а передаётся ссылка. class Animal { var name: String init(name: String) { self.name = name } func speak() { print("Some sound") } } final class Dog: Animal { override func speak() { print("Woof!") } } let myDog = Dog(name: "Buddy") myDog.speak() Ставь 👍 и забирай 📚 Базу знаний
Swift | Interview Questions
Swift | Interview Questions
🔒Открыть пост
и посмотреть медиа
🤔 Расскажи про букву D в solid Принцип инверсии зависимостей (Dependency Inversion Principle, DIP) гласит: Модули верхнего уровня не должны зависеть от модулей нижнего уровня. Оба должны зависеть от абстракций. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций. 🚩Плохой пример (Нарушение DIP) class MySQLDatabase { func fetchData() -> String { return "Данные из MySQL" } } class DataManager { let database = MySQLDatabase() // Прямая зависимость от MySQL func getData() -> String { return database.fetchData() } } 🚩Хороший пример (Используем DIP) Вводим абстракцию (Протокол) protocol Database { func fetchData() -> String } Реализуем конкретные базы данных class MySQLDatabase: Database { func fetchData() -> String { return "Данные из MySQL" } } class PostgreSQLDatabase: Database { func fetchData() -> String { return "Данные из PostgreSQL" } } Используем абстракцию в DataManager class DataManager { private let database: Database // Зависимость от абстракции init(database: Database) { self.database = database } func getData() -> String { return database.fetchData() } } Использование let mySQLDataManager = DataManager(database: MySQLDatabase()) print(mySQLDataManager.getData()) // "Данные из MySQL" let postgreSQLDataManager = DataManager(database: PostgreSQLDatabase()) print(postgreSQLDataManager.getData()) // "Данные из PostgreSQL" Ставь 👍 и забирай 📚 Базу знаний
Swift | Interview Questions
Swift | Interview Questions
🔒Открыть пост
и посмотреть медиа
🤔 Почему по дефолту дабл, а не фолт? В Swift (и во многих других языках программирования) по умолчанию числовой литерал с плавающей запятой интерпретируется как `Double`, а не Float. 🚩Основные причины: 🟠Бóльшая точность Double имеет 64 бита, а Float – 32 бита. Это значит, что Double может хранить более точные значения, что особенно важно при математических вычислениях. 🟠Совместимость со стандартными API Большинство API и стандартных библиотек Swift (например, sin(), cos(), pow()) работают именно с Double. Например: let x = 3.14 // По умолчанию это Double let y = sin(x) // sin() принимает Double 🟠Производительность на современных процессорах На современных 64-битных процессорах операции с Double выполняются так же быстро или даже быстрее, чем с Float, из-за оптимизаций в аппаратном обеспечении. 🟠Меньше неожиданных ошибок округления Float может округлять числа с потерей точности, что может привести к неожиданным результатам. Пример ошибки округления в Float: let a: Float = 0.1 + 0.2 print(a == 0.3) // false 😱 🚩Как сделать `Float` вручную? Если всё же нужен Float, надо указать это явно: let number: Float = 3.14 или let number = 3.14 as Float Ставь 👍 и забирай 📚 Базу знаний
Swift | Interview Questions
Swift | Interview Questions
🔒Открыть пост
и посмотреть медиа
🤔 Чем отличается garbage collector и подсчет ссылок? Garbage Collector (GC) и Automatic Reference Counting (ARC) – это два разных подхода к управлению памятью в программировании. Они решают одну задачу: автоматическое освобождение неиспользуемой памяти, но делают это по-разному. 🚩Garbage Collector (GC) Java, Kotlin, C#, Python, JavaScript - GC периодически просматривает всю память приложения и ищет объекты, на которые больше нет ссылок. - Когда такие объекты находятся, они удаляются, а память освобождается. - Это автоматический процесс, который запускается по мере необходимости. 🚩Подсчет ссылок (ARC - Automatic Reference Counting) Где используется: Swift, Objective-C - Каждый объект имеет счетчик ссылок (reference count). - Когда переменная создает ссылку на объект, счетчик увеличивается. - Когда переменная перестает ссылаться на объект, счетчик уменьшается. - Когда счетчик достигает нуля, объект удаляется из памяти сразу же. class Person { var pet: Pet? } class Pet { var owner: Person? } let person = Person() let pet = Pet() person.pet = pet pet.owner = person // Теперь оба объекта держат друг друга, и ARC их не удалит Решение – использовать weak: class Pet { weak var owner: Person? // Теперь утечки памяти не будет } Ставь 👍 и забирай 📚 Базу знаний
Swift | Interview Questions
Swift | Interview Questions
🔒Открыть пост
и посмотреть медиа
🤔 Класс open — финальный или нефинальный? open — всегда нефинальный, то есть разрешает наследование и переопределение. Противоположностью является final, который запрещает всё это. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Swift | Interview Questions
Swift | Interview Questions
🔒Открыть пост
и посмотреть медиа
🤔 Если обозначить внутри метода Synchronized , что будет монитору? Это высокоуровневый механизм синхронизации, который объединяет взаимное исключение (mutex) и условные переменные (condition variables) для управления доступом к объектам в многопоточной среде. 🚩Как работает 🟠Взаимное исключение (Mutual Exclusion) Только один поток может выполнить защищенный блок кода в любой момент времени. 🟠Условные переменные (Condition Variables) Позволяют потокам ожидать определенных условий, а другим потокам уведомлять их о наступлении этих условий. 🚩Примеры class ThreadSafeClass { private var internalState = 0 private let queue = DispatchQueue(label: "com.example.threadSafeQueue") func increment() { queue.sync { internalState += 1 } } func getState() -> Int { return queue.sync { internalState } } } С NSLock class ThreadSafeClass { private var internalState = 0 private let lock = NSLock() func increment() { lock.lock() internalState += 1 lock.unlock() } func getState() -> Int { lock.lock() let state = internalState lock.unlock() return state } } С objc_sync_enter и objc_sync_exit class ThreadSafeClass: NSObject { private var internalState = 0 func increment() { objc_sync_enter(self) internalState += 1 objc_sync_exit(self) } func getState() -> Int { objc_sync_enter(self) let state = internalState objc_sync_exit(self) return state } } Ставь 👍 и забирай 📚 Базу знаний
Swift | Interview Questions
Swift | Interview Questions
🔒Открыть пост
и посмотреть медиа
🤔 Кто будет управлять нажатием: вложенная коллекция или родительская? По умолчанию вложенная коллекция перехватывает события. Однако управление можно перенастроить: отключить isUserInteractionEnabled у ячеек, передать события вверх, изменить приоритеты gesture recognizers. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Swift | Interview Questions
FAQ

Open Swift | Interview Questions in Telegram and press the Start button. No separate registration is required.

Yes. The service is designed to be straightforward: open the resource, follow the on-screen instructions and start using it.

No. You can use Swift | Interview Questions directly in Telegram unless the resource description says otherwise.

Access depends on the resource. Check the current information in Telegram after opening Swift | Interview Questions.

The exact features depend on the resource. Open Swift | Interview Questions to see its current functions, content and access conditions.
Subscriber dynamics
+-0.6% last 30 days
Current
2,148
Month ago
2,161
Average growth
+0 / day
Updated
2 hours ago

Reviews for channel Swift | Interview Questions

Log in to leave a review

Only registered users can share their opinion.

No reviews yet

Be the first to share your impression of this resource!

Similar resources

Loading
Switch to Light Theme
Home Catalog Collections Blog Login