Тех собес на middle-senior IOS Developer в ****

Доступно с премиум-подпиской

Оформите премиум-подписку, чтобы получить доступ к:

  • Фильтрации по компаниям
  • Названиям компаний в интервью
  • Видеозаписям собеседований в категории IOS Developer

Посмотреть видео в категории

(0225-02-23)

техсобес

задание со скрина, код писать не нужно. просто рассказать как планируешь разрабатывать такое приложение

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

[[files/7177ed6a1ce9c318eb379ef68130755b_MD5.jpeg|Open: {50603E94-206D-4DBE-8C73-E49FA5D7D2E5}.png]] ![[files/7177ed6a1ce9c318eb379ef68130755b_MD5.jpeg]]

func loadData(card: String, completion: @escaping (CardAlbum?, Error?) -> Void) {
        guard let url = URL(string: "https://url.hghjg.com") else { return }
        
        URLSession.shared.dataTask(with: url) { data, response, error in
            if let data = data {
                let decodedData = try JSONDecoder().decode(CardAlbum.self, from: data)
                completion(decodedData, nil)
            } else if let error = error {
                completion(nil, error)
                }
            }.resume()
        }
    }

struct CardAlbum: Codable {
    let id: String
    let card: Card
    
    struct Card: Codable {
        let number: String
        let name: String
    }
}

class ViewController {
    let service = Service()
    let cardIDs: [String]
    
    init(cardIDs: [String]) {
        self.cardIDs = cardIDs
    }
    
    func loadData(completion: @escaping ([CardAlbum]) -> Void) {
        var albums: [CardAlbum] = []
        
        for cardID in cardIDs {
            service.loadData(card: cardID) { cardAlbum, error in
                if let cardAlbum = cardAlbum {
                    albums.append(cardAlbum)
                } else if let error = error {
                    print("Error loading data for card (cardID): (error)")
                }
            }
        }
            completion(albums)
    }
}