Logo
TGCATALOG
Catálogo Selecciones Blog
Preguntas de entrevista de Swift

Preguntas de entrevista de Swift

Preguntas, pruebas y tareas para desarrolladores de iOS en Telegram.

Sin valoraciones
626
29.10.2026
626
29.10.2026
Sin valoraciones
626
29.10.2026
Redirección segura vía bot
О канале

Preguntas, pruebas y tareas para desarrolladores de iOS en Telegram.

Подписчиков 2,145
Тематика Tecnología
Язык Español
Ссылка t.me/easy_swift

También te recomendamos

Kekaton AI  Voz en off y clon de voz
Kekaton AI Voz en off y clon de voz
Bot

bot de IA para clonar texto a voz y voz en Telegram. Cree audio utilizando la red neuronal de forma rápida y fácil.

Descripción

El canal está dedicado a la preparación de entrevistas en idioma Swift. Contiene preguntas actuales, pruebas, tareas prácticas e información de vacantes. Ideal para desarrolladores iOS principiantes y experimentados que quieren refrescar sus conocimientos y pasar con éxito entrevistas.

Últimas publicaciones

Preguntas de entrevista de Swift
Preguntas de entrevista de Swift
🔒Открыть пост
и посмотреть медиа
🤔 Что из себя представляет структура данных stack? Stack (стек) – это структура данных, работающая по принципу LIFO (Last In, First Out – "последним пришел, первым ушел"). 🚩Пример реализации стека в Swift В Swift нет встроенного стека (кроме Array), но можно создать свой: struct Stack { private var elements: [T] = [] mutating func push(_ item: T) { elements.append(item) } mutating func pop() -> T? { return elements.popLast() // Удаляет и возвращает верхний элемент } func peek() -> T? { return elements.last // Возвращает верхний элемент без удаления } func isEmpty() -> Bool { return elements.isEmpty } } // Пример использования: var stack = Stack() stack.push(10) stack.push(20) stack.push(30) print(stack.pop()!) // 30 print(stack.peek()!) // 20 print(stack.isEmpty()) // false 🚩Где используется стек? Обратный порядок выполнения (рекурсия) – стек вызовов функций. Алгоритмы (обратная польская нотация, DFS – поиск в глубину) История действий (назад-вперед в браузере, отмена в редакторе). Ставь 👍 и забирай 📚 Базу знаний
Preguntas de entrevista de Swift
Preguntas de entrevista de Swift
🔒Открыть пост
и посмотреть медиа
🤔 Как увеличить область нажатия на кнопку? Чтобы увеличить зону клика UIButton: 1. Создать кастомную кнопку и переопределить point(inside:with:) 2. Либо обернуть кнопку в UIView с большим frame, но маленькой кнопкой внутри. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Preguntas de entrevista de Swift
Preguntas de entrevista de Swift
🔒Открыть пост
и посмотреть медиа
🤔 Какие изменения надо сделать в constrait перед вызовом layout? Перед вызовом layoutIfNeeded() или layoutSubviews() в iOS-приложении, нужно изменить значение констрейнта и вызвать анимацию, если необходимо. Вот основные шаги: 🟠Обновление значения констрейнта Перед вызовом layoutIfNeeded(), измените свойство констрейнта (например, constant у NSLayoutConstraint). class ViewController: UIViewController { @IBOutlet weak var button: UIButton! @IBOutlet weak var heightConstraint: NSLayoutConstraint! override func viewDidLoad() { super.viewDidLoad() DispatchQueue.main.asyncAfter(deadline: .now() + 2) { self.changeButtonHeight() } } func changeButtonHeight() { heightConstraint.constant = 100 // Меняем значение констрейнта UIView.animate(withDuration: 0.3) { self.view.layoutIfNeeded() // Перестраиваем макет } } } 🟠Если меняется набор констрейнтов Если нужно удалить/добавить констрейнты, используйте `activate()` / `deactivate()`. var expanded = false @IBOutlet weak var smallHeightConstraint: NSLayoutConstraint! @IBOutlet weak var largeHeightConstraint: NSLayoutConstraint! func toggleHeight() { expanded.toggle() if expanded { NSLayoutConstraint.deactivate([smallHeightConstraint]) NSLayoutConstraint.activate([largeHeightConstraint]) } else { NSLayoutConstraint.deactivate([largeHeightConstraint]) NSLayoutConstraint.activate([smallHeightConstraint]) } UIView.animate(withDuration: 0.3) { self.view.layoutIfNeeded() } } 🟠Если работа идёт в `viewDidLoad()` Во viewDidLoad() элементы ещё не отрисованы, поэтому layoutIfNeeded() не сработает. Используйте viewDidAppear() или вызовите layoutIfNeeded() после view.layoutIfNeeded(). override func viewDidLoad() { super.viewDidLoad() heightConstraint.constant = 100 view.layoutIfNeeded() // НЕ обновит макет, потому что он ещё не загружен } Решение override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) heightConstraint.constant = 100 UIView.animate(withDuration: 0.3) { self.view.layoutIfNeeded() } } Разница между layoutIfNeeded() и setNeedsLayout() heightConstraint.constant = 100 view.setNeedsLayout() // Обновление произойдет на следующем цикле рендера Ставь 👍 и забирай 📚 Базу знаний
Preguntas de entrevista de Swift
Preguntas de entrevista de Swift
🔒Открыть пост
и посмотреть медиа
🤔 Как поменять иконку приложения в зависимости от среды? Для этого используют App Icon Sets, и в Info.plist можно указать набор иконок в зависимости от build-конфигурации. В Xcode можно также использовать xcconfig или Build Scheme, чтобы переключать иконки по окружению. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Preguntas de entrevista de Swift
Preguntas de entrevista de Swift
🔒Открыть пост
и посмотреть медиа
🤔 Какие есть инструменты для работы с потоками? В Swift есть несколько инструментов для работы с многопоточностью и параллельным выполнением кода. Вот основные из них: 🟠GCD (Grand Central Dispatch) – главный инструмент для потоков GCD – это низкоуровневая технология, позволяющая управлять задачами (тасками) в очередях (DispatchQueue). DispatchQueue.global(qos: .background).async { print("Фоновый поток") DispatchQueue.main.async { print("Вернулись в главный поток") } } 🟠OperationQueue – более удобный API для задач OperationQueue – это более гибкая и объектно-ориентированная альтернатива GCD. let queue = OperationQueue() queue.maxConcurrentOperationCount = 2 // Ограничение на 2 задачи одновременно queue.addOperation { print("Операция 1") } queue.addOperation { print("Операция 2") } 🟠Actors – безопасная работа с потоками в Swift 5.5+ С actor можно работать с потоками без гонок данных, потому что все его свойства защищены от одновременного доступа. actor Counter { private var value = 0 func increment() { value += 1 } func getValue() -> Int { return value } } let counter = Counter() Task { await counter.increment() print(await counter.getValue()) // Потокобезопасный доступ } 🟠Task & Async/Await (Swift 5.5+) – современный подход к асинхронности С async/await код становится читаемым и удобным. func fetchData() async -> String { try? await Task.sleep(nanoseconds: 1_000_000_000) // 1 секунда задержки return "Данные загружены" } Task { let result = await fetchData() print(result) } Ставь 👍 и забирай 📚 Базу знаний
Preguntas de entrevista de Swift
Preguntas de entrevista de Swift
🔒Открыть пост
и посмотреть медиа
🤔 Какие методы борьбы есть против коллизии? Существует несколько способов разрешения коллизий: 1. Открытая адресация (open addressing) — поиск следующей свободной ячейки по определенному правилу (линейный, квадратичный пробинг). 2. Цепочки (chaining) — элементы с одинаковым хэшем хранятся в связном списке (или массиве) внутри корзины. 3. Двойное хеширование — используется вторичная хэш-функция для расчета смещения. 4. Динамическое увеличение размера таблицы (rehashing) — при увеличении нагрузки пересчитываются хэши с новым размером. Swift использует цепочки и перехэширование. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Preguntas de entrevista de Swift
Preguntas de entrevista de Swift
🔒Открыть пост
и посмотреть медиа
🤔 Расскажи про классы Классы — это ссылочные типы в Swift, которые позволяют создавать объекты с общими свойствами и методами. Они поддерживают наследование, работают с ARC (Automatic Reference Counting) и хранятся в куче (heap). 🚩Основные характеристики классов 🟠Ссылочный тип Когда вы присваиваете класс другой переменной, копируется не сам объект, а ссылка на него. Изменения, сделанные через одну ссылку, затронут и другие. 🟠Хранятся в куче В отличие от структур, которые хранятся в стеке, классы создают объекты в куче. Это позволяет передавать объекты между функциями без копирования. 🟠Automatic Reference Counting (ARC) Swift использует ARC для управления памятью. Объект удаляется из памяти, когда на него больше нет ссылок. 🟠Наследование В отличие от структур, классы могут наследовать свойства и методы от других классов. Поддерживают переопределение методов (override). 🟠Идентичность объектов Два объекта класса можно сравнивать по ссылке (===), а не только по значению (==). class Animal { var name: String init(name: String) { self.name = name } func speak() { print("Some sound") } } class Dog: Animal { override func speak() { print("Woof!") } } let dog1 = Dog(name: "Buddy") let dog2 = dog1 // Копируется ссылка, а не объект dog2.name = "Charlie" print(dog1.name) // "Charlie", так как dog1 и dog2 указывают на один объект Ставь 👍 и забирай 📚 Базу знаний
Preguntas de entrevista de Swift
Preguntas de entrevista de Swift
🔒Открыть пост
и посмотреть медиа
🤔 Как протоколы реализуют код? Протоколы в iOS задают интерфейс, который может быть реализован классами, структурами или перечислениями. Они не содержат реализацию, но можно использовать протоколы с расширениями (protocol extension), чтобы добавить стандартное поведение. Протоколы обеспечивают гибкость и модульность. Это позволяет разделять ответственность и переиспользовать код. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
Preguntas de entrevista de Swift
Preguntas de entrevista de Swift
🔒Открыть пост
и посмотреть медиа
🤔 Надо ли отслеживать статус задачи в dispatchworkitem? Да, отслеживание статуса задачи в DispatchWorkItem может быть полезным, но это зависит от требований приложения. 🟠Когда это полезно? Если задача может быть отменена (cancel()) Если выполнение задачи можно приостановить или продолжить Если нужно проверить завершение перед выполнением следующего действия* let workItem = DispatchWorkItem { print("Задача выполняется") } // Запускаем задачу DispatchQueue.global().async(execute: workItem) // Отмена перед выполнением workItem.cancel() // Проверяем статус выполнения if workItem.isCancelled { print("Задача отменена") } else { print("Задача выполнена") } 🟠Можно ли проверить, завершена ли задача? В DispatchWorkItem нет метода проверки завершения. Но можно вручную отслеживать завершение с помощью notify: let workItem = DispatchWorkItem { print("Задача выполняется") } // Сообщаем о завершении workItem.notify(queue: .main) { print("Задача завершена") } DispatchQueue.global().async(execute: workItem) 🟠Надо ли всегда отслеживать статус? Если задача короткая и простая → НЕ ОБЯЗАТЕЛЬНО. Если задача важная, может быть отменена или зависит от других задач → ЛУЧШЕ ОТСЛЕЖИВАТЬ. Ставь 👍 и забирай 📚 Базу знаний
Preguntas de entrevista de Swift
Evolución de suscriptores
+-0.7% últimos 30 días
Actuales
2,145
Hace un mes
2,161
Crecimiento medio
+-1 / día
Actualizado
hace 17 horas

Reseñas de canal Preguntas de entrevista de Swift

Inicia sesión para dejar una reseña

Solo los usuarios registrados pueden compartir su opinión.

Aún no hay reseñas

¡Sé el primero en compartir tu experiencia con este recurso!

Recursos similares

Loading
Cambiar a tema claro
Inicio Catálogo Selecciones Blog Entrar