Error: No exact matches in call to instance method 'append'

Viewed 33

Im trying to implement a stock API but get an error with ".append": No exact matches in call to instance method 'append'.

I'm not familiar with it and need help to solve this problem

final class StockQuoteManager: QuoteManagerProtocol, ObservableObject {
@Published var quotes: [Quote] = []

func download(stocks: [String], completion: @escaping (Result<[Quote], NetworkError>) -> Void) {
    var internalQuotes = [Quote]()
    let downloadQueue = DispatchQueue(label: "com.app.dwonloadQueue")
    let downloadGroup = DispatchGroup()
    
    stocks.forEach { (stock) in
        downloadGroup.enter()
        let url = URL(string: API.quoteUrl(for: stock))!
        NetworkManager<GlobalQuoteResponse>().fetch(from: url) { (result) in
            switch result {
            case .failure(let err):
                print(err)
                downloadQueue.async {
                    downloadGroup.leave()
                }
                
            case .success(let resp):
                downloadQueue.async {
                    internalQuotes.append(resp.quote) // <-- ERROR
                    downloadGroup.leave()
                }
            }
        }
    }
    
    downloadGroup.notify(queue: DispatchQueue.global()) {
        completion(.success(internalQuotes))
        DispatchQueue.main.async {
            self.quotes.append(contentsOf: internalQuotes)
        }
    }
}

}

0 Answers
Related