Работа с api. Создания приложения на основе collection view

Проблема в следующем я спарсил json с api сайта (https://pixabay.com) с картинками(пытаюсь сделать приложение по примеру )
Суть такая есть модель

    import Foundation

struct CurrentImageData: Codable {
    let hits: [Hits]
}

struct Hits: Codable {
    let id: String
    let pageURL: String
    let type: String
    let tags: String
    let previewURL: String
    let previewWidth: String
    let previewHeight: String
    let webformatURL: String
    let webformatWidth: String
    let webformatHeight: String
    let largeImageURL: String
    let imageWidth: String
    let imageHeight: String
    let imageSize: String
    let views: String
    let downloads: String
    let collections: String
    let likes: String
    let user: String
    let userImageURL: String
}

тут я для ячейки коллекции сделал модель для придачи в нее информации в будем (преобразую ссылку в картинку и предам )

    import Foundation

struct CurrrenImage {
    let image: String
    
    init?(currentImageData: CurrentImageData) {
        self.image = currentImageData.hits.first!.userImageURL
    }
}

Вот тут написана логика парсера и нам как раз таки вся проблема и заключается(проблему напишу в коде после //)

    struct NetworkImageManager {
    func fetchCurrentImage() {
        let urlString = "https://pixabay.com/api/?key=\(key)&q&image_type=photo"
        guard let url = URL(string: urlString) else {return}
        let urlSession = URLSession(configuration: .default)
        let task = urlSession.dataTask(with: url) { data, responce, error in
            if let data = data {
                let currentImage = self.parseJSON(withData: data)
            }

        }
        task.resume()
    }

    func parseJSON(withData data: Data) -> CurrrenImage {
        let decoder = JSONDecoder()
        do {
            let currentImageData = try decoder.decode(CurrentImageData.self, from: data)
            guard let currentImage = CurrrenImage(currentImageData: CurrentImageData) else{return nil} //'nil' is incompatible with return type 'CurrrenImage'
             // Cannot convert value of type 'CurrentImageData.Type' to expected 
                //argument type 'CurrentImageData'
            return currentImage
        } catch let error as NSError {
            print(error.localizedDescription)
        }
        return nil

    }

}

Вот так выглядит json прогнанный через quicktype.io

    import Foundation

// MARK: - Image
struct Image: Codable {
    let total, totalHits: Int
    let hits: [Hit]
}

// MARK: - Hit
struct Hit: Codable {
    let id: Int
    let pageURL: String
    let type: TypeEnum
    let tags: String
    let previewURL: String
    let previewWidth, previewHeight: Int
    let webformatURL: String
    let webformatWidth, webformatHeight: Int
    let largeImageURL: String
    let imageWidth, imageHeight, imageSize, views: Int
    let downloads, collections, likes, comments: Int
    let userID: Int
    let user: String
    let userImageURL: String

    enum CodingKeys: String, CodingKey {
        case id, pageURL, type, tags, previewURL, previewWidth, previewHeight, webformatURL, webformatWidth, webformatHeight, largeImageURL, imageWidth, imageHeight, imageSize, views, downloads, collections, likes, comments
        case userID = "user_id"
        case user, userImageURL
    }
}

enum TypeEnum: String, Codable {
    case photo = "photo"
}

Ответы (0 шт):