Эйч
Эйч
  • Все менторы
Задачи/iOS-разработчик/Реализовать менеджер треков

Реализовать менеджер треков

Условие задачи

Реализовать менеджер треков который выводит список треков

swiftstruct Track: CustomStringConvertible {
    let title: String
    var description: String { title }
}
protocol IAlbumService {
    func loadTracks(albumId: String, completion: @escaping ([Track]) -> Void)
}
final class AlbumService: IAlbumService {
    func loadTracks(albumId: String, completion: @escaping ([Track]) -> Void) {
        DispatchQueue.global().async {
            let tracks: [Track]
            switch albumId {
            case "1":
                tracks = [
                    Track(title: "One, 1"),
                    Track(title: "Two, 1"),
                    Track(title: "Three, 1"),
                    Track(title: "Four, 1")
                ]
            case "2":
                tracks = [
                    Track(title: "One, 2"),
                    Track(title: "Two, 2"),
                    Track(title: "Three, 2")
                ]
            case "3":
                tracks = [
                    Track(title: "One, 3"),
                    Track(title: "Two, 3")
                ]
            default:
                tracks = []
            }

            DispatchQueue.main.asyncAfter(deadline: .now() + Double.random(in: 0.1...0.4)) {
                completion(tracks)
            }
        }
    }
}
final class TracksManager {
    let albumService = AlbumService()

    func loadTracks(albumIds: [String], completion: @escaping ([Track]) -> Void) {
        // Загрузка треков
        // Написать код
    }
}
let manager = TracksManager()
let albumIds: [String] = ["1", "2", "3"]

manager.loadTracks(albumIds: albumIds, completion: { tracks in
    // вывести список треков
    print(tracks)
})

RunLoop.main.run(until: Date(timeIntervalSinceNow: 3))

Профессия

iOS-разработчик

Сопроводим до оффера

Умножим шансы на каждом этапе поиска и поможем получить выгодный оффер

Узнать больше

Сервис развития карьеры

Контактыteam@h.careers@hcareers
TelegramVKYouTubeLinkedIn
Профессии
Компания
С чем помогаемОтзывыВопросы и ответыСертификатыВебинарыСтать ментором

Платформа принадлежит ООО "Эйч Карьера"
ИНН 9710095807 ОГРН 1227700077340
Адрес: 127006, город Москва, Старопименовский пер, д. 18 стр. 2, помещ./ком./этаж I/19/2

Copyright © 2020-2025 Сервис развития карьеры Эйч. Все права защищены.

Политика конфиденциальностиПользовательское соглашениеОферта