Wildberries · июль 2024

Тех собес на middle-senior IOS Разработчик в Wildberries

middle-senior Тех собес 14 задач

1. Задача: Найти и исправить ошибки в функции compareContainerValue, позволив реализовать сравнение.

protocol Weapon {
    associatedtype Kind: Equatable
    func getKind() -> Kind
}

func compareContainerValue<C1: Weapon, C2: Weapon>(container1: C1, container2: C2) -> Bool where C1.Kind == C2.Kind {
    return container1.getKind() == container2.getKind()
}
Задача 2

Написать реализацию оператора нилового коалесцирования (??).

Ответ
Задача 3

Что будет, если запустить цикл с append в массив?

Ответ
Задача 4

Реализовать функционал compactMap для массива опциональных Int без использования функций высшего порядка.

Ответ
Задача 5

Что выведет print в примере с изменением массива внутри цикла for и почему?

Ответ
Задача 6

Где и почему компилятор выведет ошибку в определении структур A, B, C?

Ответ
Задача 7

Что происходит в примере с замыканием и ссылками на объект класса C?

Ответ
Задача 8

Что будет на экране и в консоли при изменении layer.bounds.size у UIView?

Ответ
Задача 9

Что выведет print(newView.frame) через 2.5 секунды анимации?

Ответ
Задача 10

Что выведет print(newView.frame) через 2.5 секунды, если вызвать sleep(10)?

Ответ
Задача 11

Какие методы существуют для обновления коллекции и как обновить её без анимации?

Ответ
Задача 12

Что выведет и почему в примере с отложенным замыканием и деинициализацией?

Ответ
Задача 13

Что будет при выполнении кода с DispatchQueues и как исправить ошибку?

Ответ
Задача 14

Объяснить работу DispatchGroup, очередей и барьера в контексте потокобезопасности.

Ответ

Дополнительно

Собеседование состояло исключительно из практических задач по Swift и iOS. Теоретических вопросов практически не было.

1

Вложения

[16afe798_Wildberries. Задачи.pdf](./media/16afe798_Wildberries. Задачи.pdf)