Logo
TGCATALOG
Catalog Collections Blog
Swift | Interview Questions

Swift | Interview Questions

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

No ratings
598
28.10.2026
598
28.10.2026
No ratings
598
28.10.2026
Safe redirect via bot
О канале

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

Подписчиков 2,142
Тематика 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
🔒Открыть пост
и посмотреть медиа
🤔 Почему Apple предпочитает использовать value type по умолчанию? Apple предпочитает value types (структуры struct) по умолчанию в Swift по нескольким причинам 🟠Безопасность многопоточного кода struct копируется при передаче, а не передается по ссылке, как class. Это снижает вероятность гонки данных (data race), когда один поток изменяет объект, а другой читает его одновременно. В многопоточной среде это делает код более безопасным. struct Point { var x: Int var y: Int } var p1 = Point(x: 1, y: 2) var p2 = p1 // p2 - это копия, изменения в p2 не затронут p1 p2.x = 10 print(p1.x) // 1 print(p2.x) // 10 🟠Производительность struct хранятся в стеке, а не в куче, что делает их создание и удаление быстрее. Куча (heap) требует управления памятью (ARC – Automatic Reference Counting), а struct — нет. class MyClass { var value = 0 } // В куче (heap), управляется ARC struct MyStruct { var value = 0 } // В стеке (stack), копируется при передаче 🟠Предсказуемость и неизменяемость struct ведут себя как примитивные типы (Int, Double), что делает код предсказуемым. Их изменение происходит локально, без неожиданных эффектов в других частях программы. class Car { var speed: Int init(speed: Int) { self.speed = speed } } var car1 = Car(speed: 60) var car2 = car1 // car2 - это ссылка на тот же объект car2.speed = 100 // Изменение затрагивает car1! print(car1.speed) // 100 (хотя мы меняли car2!) 🟠Использование в стандартной библиотеке Swift изначально построен на struct: Int, Double, Bool, Array, Dictionary, String — это структуры. Это делает язык более безопасным и производительным. var arr1 = [1, 2, 3] var arr2 = arr1 // Копия массива, а не ссылка! arr2.append(4) print(arr1) // [1, 2, 3] (не изменился!) print(arr2) // [1, 2, 3, 4] (новый массив) 🚩Когда использовать `class`? Хотя struct — предпочтительный выбор, class нужен, когда: Нужна ссылочная семантика (например, объект должен изменяться в разных местах кода). Есть сложные иерархии наследования. Требуется работа с Objective-C (NSObject). Ставь 👍 и забирай 📚 Базу знаний
Swift | Interview Questions
Swift | Interview Questions
🔒Открыть пост
и посмотреть медиа
🤔 Когда не имеет смысла вызывать hitTest у UIView? hitTest не будет вызван или вернёт nil, если вью: - Скрыта (isHidden = true) - Прозрачна (alpha
Swift | Interview Questions
Swift | Interview Questions
🔒Открыть пост
и посмотреть медиа
🤔 Чем опасна утечка памяти? Утечка памяти (memory leak) – это ситуация, когда память остаётся выделенной, но больше не используется программой и не освобождается. class Person { var pet: Pet? deinit { print("Person удалён") } } class Pet { var owner: Person? deinit { print("Pet удалён") } } var person: Person? = Person() var pet: Pet? = Pet() person?.pet = pet pet?.owner = person person = nil pet = nil 🚩Как избежать утечек памяти? 🟠Использовать `weak` или `unowned` ссылки Слабые (weak) или безвладельческие (unowned) ссылки не увеличивают счётчик ссылок, что разрывает цикл. class Person { var pet: Pet? deinit { print("Person удалён") } } class Pet { weak var owner: Person? // Слабая ссылка deinit { print("Pet удалён") } } var person: Person? = Person() var pet: Pet? = Pet() person?.pet = pet pet?.owner = person person = nil // "Person удалён" pet = nil // "Pet удалён" 🟠Использовать `unowned`, если объект всегда будет существовать unowned похож на weak, но он не может быть `nil`. class Owner { var car: Car? deinit { print("Owner удалён") } } class Car { unowned var owner: Owner // Безвладельческая ссылка init(owner: Owner) { self.owner = owner } deinit { print("Car удалён") } } var owner: Owner? = Owner() owner?.car = Car(owner: owner!) owner = nil // "Owner удалён", "Car удалён" 🟠Разрывать циклы в замыканиях (`[weak self]`) Замыкания захватывают объекты, создавая циклические ссылки. Проблема: self удерживается замыканием class ViewController { var closure: (() -> Void)? func setup() { closure = { print(self) // Удерживает self, создавая цикл! } } deinit { print("ViewController удалён") } } var vc: ViewController? = ViewController() vc?.setup() vc = nil // ❌ "ViewController" НЕ удалится 🚩Как найти утечки памяти? 🟠Использовать `Instrument – Leaks` в Xcode - Открываем Xcode > Product > Profile. - Выбираем Leaks. - Запускаем приложение и проверяем, остаются ли объекты в памяти. 🟠Проверить `deinit` Если метод deinit не вызывается – значит, объект утёк в память. class Test { deinit { print("Test удалён") } } var obj: Test? = Test() obj = nil // Должно напечатать "Test удалён" 🟠Включить `Malloc Stack Logging` - В Xcode открываем "Debug Memory Graph" (нажимая значок в Debugger). - Смотрим, какие объекты остались в памяти. Ставь 👍 и забирай 📚 Базу знаний
Swift | Interview Questions
Swift | Interview Questions
🔒Открыть пост
и посмотреть медиа
🤔 Что такое Generics (обобщённое программирование)? Generics позволяют писать обобщённый код, который может работать с разными типами, сохраняя типовую безопасность. Например, можно создать функцию, которая сортирует любые массивы, не указывая конкретный тип. Это снижает дублирование кода и делает библиотеки гибкими. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Swift | Interview Questions
Swift | Interview Questions
🔒Открыть пост
и посмотреть медиа
🤔 Есть ли в свифте множественное наследование? В Swift нет множественного наследования классов, но можно использовать множественное наследование через протоколы. 🚩Почему нет множественного наследования классов? Swift запрещает множественное наследование классов, потому что оно может привести к конфликтам и алмазной проблеме (diamond problem). Допустим, в языке с поддержкой множественного наследования у нас есть два родительских класса с одинаковым методом: class A { public: void greet() { cout
Swift | Interview Questions
Swift | Interview Questions
🔒Открыть пост
и посмотреть медиа
🤔 Какие инструменты Xcode есть? Xcode предлагает: - Интегрированную среду разработки (IDE). - Инструменты отладки: LLDB, Breakpoints, Debug View Hierarchy. - Инструменты профилирования: Instruments. - Интерфейсный редактор: Storyboard, Interface Builder. - Симуляторы, автотесты, Git-интеграция, Code Review, Device logs. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Swift | Interview Questions
Swift | Interview Questions
🔒Открыть пост
и посмотреть медиа
🤔 Какие можно выделить главные принципы ООП? Объектно-ориентированное программирование (ООП) — это парадигма, основанная на концепции "объектов", которые могут содержать данные в виде полей (часто называемых атрибутами или свойствами) и код в виде процедур (часто называемых методами). ООП фокусируется на использовании объектов для моделирования реального мира (или абстракций), облегчая разработку и поддержку сложных программ. Существует четыре основных принципа: 🟠Инкапсуляция Механизм ООП, который объединяет данные (атрибуты) и код (методы), манипулирующий этими данными, внутри одного объекта и скрывает детали реализации от внешнего использования. Это позволяет защитить внутреннее состояние объекта от прямого доступа извне и обеспечить контролируемый интерфейс для работы с этим объектом. 🟠Наследование Позволяет создавать новый класс на основе уже существующего класса, перенимая его свойства и методы. Новый класс может добавлять собственные свойства и методы или модифицировать унаследованные. Наследование обеспечивает повторное использование кода, упрощает его расширение и поддержку. 🟠Полиморфизм Способность объектов с одинаковым интерфейсом предоставлять различную реализацию для одного и того же метода. Это означает, что функция или метод могут использоваться для различных типов объектов, и каждый тип может реализовать эту функцию или метод по-своему. Полиморфизм упрощает написание общего кода для работы с объектами разных классов и обеспечивает гибкость в его использовании. 🟠Абстракция Позволяет скрыть сложность системы, представляя её ключевые аспекты и скрывая детали реализации. Это достигается за счёт использования абстрактных классов и интерфейсов, которые определяют шаблон для классов-наследников. Абстракция помогает сосредоточиться на взаимодействии объектов на более высоком уровне, игнорируя ненужные детали. Ставь 👍 и забирай 📚 Базу знаний
Swift | Interview Questions
Swift | Interview Questions
🔒Открыть пост
и посмотреть медиа
🤔 Что означают IBOutlet и IBAction, для чего они нужны, и что значат для препроцессора? - IBOutlet – указывает, что свойство связано с элементом интерфейса (Storyboard/XIB). - IBAction – указывает, что метод вызывается при взаимодействии пользователя (например, нажатие кнопки). Оба являются атрибутами (@property в Objective-C, аннотациями в Swift), но игнорируются препроцессором и служат только для связи с Interface Builder. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Swift | Interview Questions
Swift | Interview Questions
🔒Открыть пост
и посмотреть медиа
🤔 Какие плюсы и минусы layout'а? Каждый способ создания макетов (layout'а) в iOS-разработке имеет свои преимущества и недостатки. 🚩Interface Builder (IB) ➕Визуальное редактирование Удобный графический интерфейс для быстрой настройки и визуального просмотра изменений. ➕Интеграция с Auto Layout Простая настройка ограничений (constraints) для адаптивного интерфейса. ➕Быстрое прототипирование Возможность быстрого создания и изменения макетов без написания кода. ➖Меньшая гибкость Ограниченные возможности для создания сложных и динамических макетов. ➖Конфликты при совместной работе Трудности при слиянии изменений в storyboard или xib файлах в больших командах. ➖Производительность Более медленное время загрузки по сравнению с программными подходами. 🚩Auto Layout ➕Адаптивность Поддержка различных устройств и ориентаций экрана. ➕Мощные инструменты Возможность создания сложных и адаптивных макетов с помощью ограничений. ➕Интеграция с Interface Builder Упрощенная настройка ограничений через визуальный интерфейс. ➖Крутая кривая обучения Может быть сложно освоить, особенно для новичков. ➖Управление сложными макетами Требует тщательного планирования и может стать сложным при работе с большим количеством ограничений. 🚩Programmatic Layout ➕Полный контроль Возможность точной настройки макета с помощью кода. ➕Гибкость Легкость создания динамических и условных макетов. ➕Управление версиями Легче управлять изменениями в коде по сравнению с визуальными файлами. ➖Большая трудоемкость Требует больше времени и усилий для настройки, особенно для сложных макетов. ➖Меньшая наглядность Отсутствие визуального редактора может затруднить представление конечного результата. 🚩Stack Views ➕Упрощение макетов Легкость создания и управления сложными макетами с минимальными усилиями. ➕Интеграция с Auto Layout Автоматическое управление ограничениями для вложенных элементов. ➕Адаптивность Поддержка различных ориентаций и размеров экранов. ➖Ограниченная гибкость Менее гибкие по сравнению с чистым Auto Layout или программными подходами. ➖Поддержка Не всегда подходят для всех типов макетов, особенно для более сложных компоновок. 🚩SwiftUI ➕Декларативный синтаксис Простота и понятность кода благодаря декларативному подходу. ➕Превью в реальном времени Мгновенное обновление интерфейса при изменении кода. ➕Интеграция с Swift Современные возможности языка и тесная интеграция с экосистемой Apple. ➕Кроссплатформенность Поддержка различных платформ (iOS, macOS, watchOS, tvOS). ➖Требования к версии iOS Поддержка только iOS 13 и выше, что может ограничить использование на старых устройствах. ➖Зрелость фреймворка Некоторые функции еще находятся в стадии разработки, и могут быть ограничены возможности по сравнению с UIKit. Ставь 👍 и забирай 📚 Базу знаний
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.8% last 30 days
Current
2,142
Month ago
2,160
Average growth
+-1 / day
Updated
2 days 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