Swift | Вопросы собесов

channel icon
Разбираем вопросы собеседований на iOS / Swift Developer

Сайт: easyoffer.ru

Условия размещения

Цена за 48 часов в ленте 1750,00
Цена за 1 час закрепления N/A
Взаимопиар Нет
Дополнительные условия рекламы Отсутствуют
-5
1 902
подписчиков
+1
360
охват 1 публикации
0
~4
постов / день
+0,1%
19,0%
ERR % ?

Статистика

Последние публикации

Swift | Вопросы собесов
21 декабря 2024 г. 19:10
🤔🤔 Какие есть паттерны в объектном проектировании

Среди паттернов объектного проектирования выделяются: порождающие паттерны (например, Singleton, Factory, Builder), структурные паттерны (Adapter, Composite, Decorator) и поведенческие паттерны (Observer, Strategy, Command). Порождающие паттерны помогают создавать объекты, структурные организуют отношения между объектами, а поведенческие управляют взаимодействиями и обязанностями объектов. Эти паттерны способствуют созданию гибкого и поддерживаемого кода.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚📚 Базу знаний Базу знаний
Swift | Вопросы собесов
21 декабря 2024 г. 16:15
Дарим подписку на Яндекс МузыкуДарим подписку на Яндекс Музыку

Ответьте на 1 вопрос и Яндекс Музыка для вас и 3-х ваших близких 60 дней бесплатно.
Кинопоиск и Яндекс Книги тоже в подписке.
Попробуйте сейчас❤️

ПопробоватьПопробовать

#реклама 18+
music.yandex.ru

О рекламодателе
Реклама на Яндексе
Swift | Вопросы собесов
21 декабря 2024 г. 12:10
🤔 Что знаешь про Array?Что знаешь про Array?

Это упорядоченная коллекция элементов одного типа. Массивы являются одним из основных и наиболее часто используемых типов данных в Swift. Они предоставляют множество методов и свойств для управления и обработки коллекций данных.

🚩Основные аспекты

🟠Создание массива
Пустой массив
var emptyArray: [Int] = []
var anotherEmptyArray = [Int]()


Массив с начальными значениями
var numbers: [Int] = [1, 2, 3, 4, 5]
var moreNumbers = [1, 2, 3, 4, 5]


🟠Доступ к элементам
По индексу
let firstNumber = numbers[0]  // 1     


Изменение элемента
numbers[0] = 10  // теперь numbers = [10, 2, 3, 4, 5]     


🟠Добавление элементов
В конец массива
numbers.append(6)  // теперь numbers = [10, 2, 3, 4, 5, 6]     


Вставка по индексу
numbers.insert(7, at: 1)  // теперь numbers = [10, 7, 2, 3, 4, 5, 6]     


🟠Удаление элементов
По индексу
numbers.remove(at: 1)  // теперь numbers = [10, 2, 3, 4, 5, 6]     


Последний элемент
numbers.removeLast()  // теперь numbers = [10, 2, 3, 4, 5]     


Все элементы
numbers.removeAll()  // теперь numbers = []     


🟠Итерация по массиву
С использованием цикла for
for number in numbers {
print(number)
}


С использованием метода forEach
numbers.forEach { print($0) }     


🟠Методы массивов
Фильтрация
let evenNumbers = numbers.filter { $0 % 2 == 0 }     


Преобразование
     let stringNumbers = numbers.map { String($0) }


Сокращение:
let sum = numbers.reduce(0, +)     


🚩Плюсы использования

Упорядоченность
Элементы хранятся в определенном порядке и доступ к ним возможен по индексу.
Гибкость
Легко добавлять и удалять элементы, изменять их порядок.
Богатый набор методов
Массивы предоставляют множество методов для обработки данных, таких как фильтрация, сортировка, преобразование и т.д.

🚩Важные особенности

🟠Тип безопасности
Все элементы массива должны быть одного типа, что обеспечивает безопасность типов.
🟠Производительность
Доступ по индексу выполняется за постоянное время O(1), но вставка и удаление элементов могут иметь сложность O(n), если они происходят не в конце массива.
🟠Неизменяемые массивы
Если массив объявлен с использованием let, он становится неизменяемым, и его элементы нельзя добавлять или удалять.
let immutableNumbers = [1, 2, 3]
// immutableNumbers.append(4) // Ошибка: Невозможно изменить неизменяемый массив


Ставь 👍👍 и забирай 📚📚 Базу знаний Базу знаний
Swift | Вопросы собесов
20 декабря 2024 г. 14:15
Москвич 3Москвич 3

Современный городской кроссовер Москвич 3 за 17 500 рублей в месяц. Подробности уточняйте на официальном сайте moskvich.ru

Перейти на сайтПерейти на сайт

#реклама
moskvich.ru

О рекламодателе
Swift | Вопросы собесов
20 декабря 2024 г. 12:10
🤔 Что такое WirtessTable?Что такое WirtessTable?

Это концепции, которые используются для поддержки полиморфизма и динамического диспетчеризации методов.

🚩Witness Table (Таблица свидетельств)

Это структура данных, используемая компилятором Swift для обеспечения полиморфизма при работе с протоколами. Она содержит указатели на функции, реализующие требования протокола для конкретного типа. Это позволяет динамически вызывать методы протокола на объекте, даже если точный тип объекта неизвестен.

🚩Основные аспекты

🟠Протоколы в Swift
Протоколы определяют интерфейс (набор методов и свойств), который должен быть реализован типом. Когда тип соответствует протоколу, компилятор создает таблицу свидетельств для этого типа.

🟠Структура таблицы
Таблица свидетельств содержит указатели на реализации методов и свойств, определенных в протоколе. При вызове метода протокола через объект типа, соответствующего протоколу, используется таблица свидетельств для динамического поиска и вызова правильного метода.

🟠Использование
Swift использует таблицы свидетельств для реализации динамического полиморфизма, позволяя вызывать методы протокола на объектах различных типов. Это обеспечивает гибкость и расширяемость кода.

🚩Пример использования

Определение протокола и соответствующего типа
protocol Drawable {
func draw()
}

class Circle: Drawable {
func draw() {
print("Drawing a circle")
}
}

class Square: Drawable {
func draw() {
print("Drawing a square")
}
}

func render(shape: Drawable) {
shape.draw() // Использование таблицы свидетельств для вызова правильного метода draw()
}

let shapes: [Drawable] = [Circle(), Square()]
for shape in shapes {
render(shape: shape)
}


🚩🚩Плюсы

Полиморфизм
Таблицы свидетельств позволяют Swift поддерживать полиморфизм через протоколы.
Динамическая диспетчеризация
Они обеспечивают динамическую диспетчеризацию методов, что позволяет вызывать методы на объектах различных типов, соответствующих одному протоколу.
Производительность
Использование таблиц свидетельств позволяет оптимизировать вызовы методов и улучшить производительность по сравнению с другими методами динамической диспетчеризации.

Ставь 👍👍 и забирай 📚📚 Базу знаний Базу знаний
Swift | Вопросы собесов
19 декабря 2024 г. 19:10
🤔🤔 Что означает принцип open closed?

Принцип открытости/закрытости (Open/Closed Principle) гласит, что классы должны быть открыты для расширения, но закрыты для модификации. Это позволяет добавлять новую функциональность без изменения существующего кода, что снижает риск внесения ошибок.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚📚 Базу знаний Базу знаний
Swift | Вопросы собесов
19 декабря 2024 г. 14:15
Axe на Ozon — выбери свою свежесть!Axe на Ozon — выбери свою свежесть!

👍 Купи Axe на Ozon со скидкой 30%! Широкий выбор мужских средств — выбери свой стиль и наслаждайся уверенностью каждый день. Заказывай сейчас! ⚡

ПопробоватьПопробовать

#реклама
ozon.ru

О рекламодателе
Swift | Вопросы собесов
19 декабря 2024 г. 12:10
🤔 Как обращаются к объектам класса и объектам структуры?Как обращаются к объектам класса и объектам структуры?

В Swift объекты классов и структуры имеют различия в управлении памятью и способе обращения.

🚩Классы

Являются ссылочными типами, что означает, что объекты классов передаются по ссылке.

🚩Создание и обращение к объектам классов

Создание
class Person {
var name: String
init(name: String) {
self.name = name
}
}

let person1 = Person(name: "Alice")
let person2 = person1 // person2 указывает на тот же объект, что и person1


Изменение свойств
person2.name = "Bob"
print(person1.name) // "Bob"


🚩Структуры

Являются значимыми типами, что означает, что объекты структур передаются по значению.

🚩Создание и обращение к объектам структур

Создание
struct Person {
var name: String
}

var person1 = Person(name: "Alice")
var person2 = person1 // person2 является копией person1


Изменение свойств
person2.name = "Bob"
print(person1.name) // "Alice"


🚩Основные отличия

🟠Передача по ссылке vs. по значению
Классы передаются по ссылке. Изменения через одну ссылку отражаются на всех ссылках.
Структуры передаются по значению. Каждое присваивание или передача создает копию.

🟠Использование
Классы: Используются для объектов, которым требуется идентичность или наследование.
Структуры: Используются для простых данных, которые логически являются значениями, таких как точки, размеры или пользовательские данные.

🚩Примеры

Классы
class Car {
var model: String
init(model: String) {
self.model = model
}
}

let car1 = Car(model: "Tesla")
let car2 = car1
car2.model = "BMW"
print(car1.model) // "BMW"


Структуры
struct Car {
var model: String
}

var car1 = Car(model: "Tesla")
var car2 = car1
car2.model = "BMW"
print(car1.model) // "Tesla"


Ставь 👍👍 и забирай 📚📚 Базу знаний Базу знаний
Swift | Вопросы собесов
18 декабря 2024 г. 19:10
🤔🤔Что такое cherrypick?

cherrypick — это команда Git, которая позволяет взять конкретные изменения из одного коммита и применить их в другой ветке. Это полезно для исправления ошибок или добавления небольших фич без полного слияния веток.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚📚 Базу знаний Базу знаний
Swift | Вопросы собесов
18 декабря 2024 г. 13:45
Концептуальные офисы в БЦ RUNOVSKY 14Концептуальные офисы в БЦ RUNOVSKY 14

Концептуальное офисное пространство для работы, расположенное в историческом центре Москвы в районе Замоскворечье. Проект имеет свой неповторимый характер. Переосмысление стиля ар-деко нашло свое отражение в черных фасадах с арочным остеклением.

БЦ находится в 2 минутах ходьбы от метро "Новокузнецкая", через которую проходят основные пешие маршруты до Третьяковской галереи, парка Зарядья и Московкского Кремля.

Проектом предусмотрено большое количество планировочных решений офисов площадью от 27 м2 с возможностью объединения смежных помещений.

Тех, кто решит купить лот в "RUNOVSKY 14", ждет премиальный сервис, безопасность и комфортная атмосфера.

Перейти на сайтПерейти на сайт

#реклама
зиккурат.рф

О рекламодателе
Swift | Вопросы собесов
18 декабря 2024 г. 12:10
🤔 В чём отличие Wick и Anound ссылок?В чём отличие Wick и Anound ссылок?

Wick-ссылки являются прямыми и предотвращают удаление объекта сборщиком мусора, тогда как Anound-ссылки являются слабыми и позволяют сборщику мусора удалить объект при отсутствии других прямых ссылок.

🚩Weak ссылки

Слабая ссылка не удерживает объект в памяти. Объект может быть освобожден, если на него нет других сильных ссылок. Может быть nil. Используется с Optional типами. Автоматически становится nil, когда объект освобождается. Для объектов, которые могут исчезнуть во время жизненного цикла.
class Person {
var name: String
weak var friend: Person?
init(name: String) {
self.name = name
}
}

var alice: Person? = Person(name: "Alice")
var bob: Person? = Person(name: "Bob")

alice?.friend = bob
bob?.friend = alice


🚩Unowned ссылки

Неактивная ссылка не удерживает объект в памяти и не может быть nil. Никогда не бывает nil. Используется с non-Optional типами. Программа крашнется при попытке доступа к освобожденному объекту. Для объектов, которые должны существовать на протяжении всего жизненного цикла другого объекта.
class Person {
var name: String
var apartment: Apartment?
init(name: String) {
self.name = name
}
}

class Apartment {
unowned var tenant: Person
init(tenant: Person) {
self.tenant = tenant
}
}

var alice: Person? = Person(name: "Alice")
var apt = Apartment(tenant: alice!)


🚩Основные отличия

🟠Состояние ссылки
Weak: Может быть nil.
Unowned: Никогда не бывает nil.

🟠Жизненный цикл объекта
Weak: Используется, когда объект может быть освобожден во время жизненного цикла.
Unowned: Используется, когда объект должен существовать столько же, сколько и его владелец.

🟠Использование
Weak: Для делегатов и объектов, которые могут исчезнуть.
Unowned: Для циклических зависимостей, где один объект гарантированно существует.

Ставь 👍👍 и забирай 📚📚 Базу знаний Базу знаний
Swift | Вопросы собесов
18 декабря 2024 г. 10:00
А вы знали что?...

🕵️В Windows есть папка, которая собирает на вас компромат!

Посмотрите видео выше — насколько легко узнать всю информацию о вас

Простых способов узнать о вас практически всё — сотни, и если вы хотите соблюдать хотя бы минимум сетевой гигиены — подпишитесь на IT ВЕДОМСТВО

Они рассказывает о признаках майнеров, как удалить трояны и порно-баннеры за 5 минут

Помимо всего этого, сейчас владелец канала проводит розыгрыш умной колонки, для всех новоприбывших подписчиков

💻 Подписываемся на IT ВЕДОМСТВОIT ВЕДОМСТВО — выигрываем призы и соблюдаем цифровую гигиену
Swift | Вопросы собесов
17 декабря 2024 г. 19:10
🤔🤔 Расскажи про capture list?

Capture list в замыканиях Swift используется для управления захватом переменных, предотвращая сильные ссылки ([weak self]) или обеспечивая их копирование ([x]). Это помогает управлять памятью и избегать утечек.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚📚 Базу знаний Базу знаний
Swift | Вопросы собесов
17 декабря 2024 г. 14:15
4 Пикселя. Digital-агентство полного цикла.4 Пикселя. Digital-агентство полного цикла.

Мы работаем — вы получаете результат 📊

Мы знаем, как сделать вашу работу проще и эффективнее! Доверьте нам разработку комплексной маркетинговой стратегии для увеличения прибыли и избавления от рутинных задач.

Мы возьмем на себя:

- Анализ рынка и конкурентов
- Разработку эффективной стратегии
- Выбор оптимальных каналов продвижения
- Запуск и отслеживание результатов

Доверьтесь профессионалам и сосредоточьтесь на развитии своего бизнеса! Получите бесплатную консультацию прямо сейчас.


ВыбратьВыбрать

#реклама
4px.ru

О рекламодателе
Swift | Вопросы собесов
17 декабря 2024 г. 12:10
🤔 Когда появляется Sitable?Когда появляется Sitable?

Sitable появляется в качестве новой функции, когда объект или пространство становится подходящим для использования. Это происходит благодаря изменению условий, которые делают его удобным или доступным. Например, помещение может стать sitable после установки мебели или проведения ремонта.

🚩Что такое dSYM

Файл с отладочной информацией для декодирования отчетов о сбоях. Он связывает машинный код с исходным кодом.

🟠Содержание
Имена методов и классов.
🟠Создание: Автоматически в Xcode при сборке.
🟠Использование
Декодирование отчетов о сбоях.

Пример:

1⃣Получение отчета о сбое.

2⃣Загрузка dSYM в сервис анализа (например, Crashlytics).

3⃣Декодирование отчета с помощью dSYM.

🚩Что такое Toll-free bridging

Взаимозаменяемое использование объектов Core Foundation и Foundation в Swift и Objective-C без преобразования.
Связь: Использование объектов Core Foundation и Foundation.
Примеры:
CFStringRef и NSString
CFArrayRef и NSArray
CFDictionaryRef и NSDictionary

🚩Когда использовать UITableView и UICollectionView

UITableView
let tableView = UITableView()
tableView.dataSource = self


UICollectionView
let layout = UICollectionViewFlowLayout()
let collectionView = UICollectionView(frame: .zero, collectionViewLayout: layout)
collectionView.dataSource = self


Ставь 👍👍 и забирай 📚📚 Базу знаний Базу знаний
Swift | Вопросы собесов
16 декабря 2024 г. 19:10
🤔🤔 Чем отличаются структуры и классы?

Основное различие между структурами и классами в Swift заключается в том, что структуры являются типами-значениями, а классы — типами-ссылками. Структуры копируются при передаче в функции или при присваивании, а классы передаются по ссылке. Классы поддерживают наследование, в то время как структуры нет. Структуры также автоматически предоставляют конструкторы, и их использование чаще предпочтительно для простых контейнеров данных.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Swift | Вопросы собесов
16 декабря 2024 г. 14:09
5 причин, почему вам нужен Битрикс24 Мессенджер + AI5 причин, почему вам нужен Битрикс24 Мессенджер + AI

1) Ничего личного. Никаких Алена-ноготочки и любимая жена
2) Только рабочее. Общение с коллегами в чатах, каналах и тредах.
3) Слова становятся делами. Задачи и встречи ставятся прямо из переписки в чате.
4) Синки. Мгновенные видеоколлы до 100 человек из чата в один клик.
5) Нейросеть. Можно прямо в групповом чате штурмить идеи с AI-помощником.
А, последняя причина – пользоваться можно бесплатно.

Забирайте бесплатный мессенджер для работы компании — Битрикс24


ПопробоватьПопробовать

#реклама 16+
bitrix24.ru

О рекламодателе
Swift | Вопросы собесов
16 декабря 2024 г. 12:10
🤔 Что такое dSYM?Что такое dSYM?

Это файл, содержащий отладочную информацию, используемую для сопоставления адресов в машинном коде с исходным кодом. В iOS и macOS разработке dSYM-файлы играют важную роль в процессе отладки и анализа сбоев (crash reports).

🚩Основные аспекты

🟠Содержание
dSYM-файл содержит символы отладки, такие как имена методов и классов, которые соответствуют машинному коду скомпилированного приложения. Эта информация позволяет разработчикам интерпретировать сбои и ошибки, связывая их с исходным кодом.

🟠Создание
dSYM-файлы автоматически создаются Xcode при сборке приложения. Они хранятся в специальной директории и могут быть включены в архив сборки (archive) для последующей загрузки в инструменты анализа сбоев.

🟠Использование
Декодирование отчетов о сбоях: При сбое приложения, отчет о сбое содержит машинные адреса, которые трудно интерпретировать без символов отладки. dSYM-файл помогает преобразовать эти адреса в понятные строки исходного кода.
Инструменты анализа: Инструменты, такие как Xcode, Crashlytics, или другие платформы сбора и анализа сбоев, используют dSYM-файлы для декодирования и анализа отчетов о сбоях.

🚩Пример использования

🟠Получение отчета о сбое (crash report)
Отчеты о сбоях можно получить из Xcode, TestFlight, App Store Connect, или от пользователей.
🟠Загрузка dSYM в сервис анализа
Сервис анализа сбоев, такой как Crashlytics, запрашивает загрузку соответствующего dSYM-файла для декодирования отчетов. Обычно это можно сделать через интерфейс разработчика или автоматически при настройке сборочного процесса.
🟠Декодирование отчета
С помощью dSYM-файла отчет о сбое преобразуется в читаемый формат, содержащий строки исходного кода, где произошел сбой.

🚩Важные моменты

🟠Сохранение dSYM-файлов
Всегда сохраняйте dSYM-файлы для каждой версии вашего приложения, так как они уникальны для каждой сборки.
🟠Управление версиями
Храните dSYM-файлы в безопасном месте (например, в системе управления версиями), чтобы всегда иметь доступ к нужной информации для анализа сбоев.
🟠Сопоставление версий
Убедитесь, что используемый dSYM-файл соответствует версии приложения, из которой получен отчет о сбое.

Ставь 👍👍 и забирай 📚📚 Базу знаний Базу знаний
Swift | Вопросы собесов
15 декабря 2024 г. 19:10
🤔🤔 Что означает принцип open closed?

Принцип открытости/закрытости (Open/Closed Principle) гласит, что классы должны быть открыты для расширения, но закрыты для модификации. Это позволяет добавлять новую функциональность без изменения существующего кода, что снижает риск внесения ошибок.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚📚 Базу знаний Базу знаний
Swift | Вопросы собесов
15 декабря 2024 г. 18:16
Миграция в облако? Это легко!Миграция в облако? Это легко!

Собственная инфраструктура устарела или не справляется с нагрузками? Используйте облачные ресурсы! Эксперты Yandex Cloud помогут перейти в облако быстро, легко и безопасно.

✅ Мы полностью сопровождаем процесс.
✅ От вас — только инженер с доступом к инфраструктуре.
✅ Архитектура под ваши задачи, миграция и поддержка на каждом шагу — всё включено.

⚡Переходите в Yandex Cloud и забудьте о старом железе. А если успеете подать заявку до 31 декабря, мы покроем расходы на инженеров и тестовую инфраструктуру.

Подать заявкуПодать заявку

#реклама 16+
yandex.cloud

О рекламодателе
Реклама на Яндексе