jsonswiftnsurlsessiondatatask

JSON networking request not entering URLSession.shared.dataTask


I am having problems finding out why my dataTask returns an empty result. While going through My NetworkingManager class it appeared that it never enters the URLSession.shared.dataTask. Does anyone know why?

Her is my NetworkingManager which is being used in the ContentView of the app:

class NetworkingManager: ObservableObject {
    var didChange = PassthroughSubject<NetworkingManager, Never>()
    
    var showList = ShowResultsAPI(results: []) {
        didSet {
            didChange.send(self)
        }
    }
    
    init() {
        guard let url = URL(string:  "www.json.url") else {
            return }
        URLSession.shared.dataTask(with: url) { (data, _, _) in
            guard let data = data else {
                return }
            
            let showList = try! JSONDecoder().decode(ShowResultsAPI.self, from: data)

            DispatchQueue.main.async {
                self.showList = showList
            }

        }.resume()
    }
}


Solution

  • Adding a .sleep(2) at the end of the init() helped to process the JSON.

    Edited:

    It needed an asynchronous task which implies having a sleep or as @vadian suggested a better suited delay() from combine.