API Request Returning an empty value — Swift

23 Views Asked by At

I've used the debugger in XCode and noticed that I'm not returning a value for the following. I've contained the error to this section of the code by debugging all other parts first.

extension Article {
    
    static var previewData: NewsAPIResponse = {
        var temp : NewsAPIResponse = NewsAPIResponse(content: [])
        let url = URL(string: "REPLACED WITH MY_API_KEY")
        
        var request = URLRequest(url: url!)

        request.addValue("application/json", forHTTPHeaderField: "Accept")
        let task = URLSession.shared.dataTask(with: url!) { data, response, error in
            guard error == nil else {
                print(error!)
                return
            }
            guard let data = data else {
                print("Data is empty")
                return
            }
            let jsonDecoder = JSONDecoder()
            let dateFormatter = DateFormatter()
            dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
            jsonDecoder.dateDecodingStrategy = .formatted(dateFormatter)

            temp = try!jsonDecoder.decode(NewsAPIResponse.self, from: data)
            print(temp)
            //putting the return statement here throws an error
        }
        print(temp)
        return temp ?? NewsAPIResponse(content: [])
        task.resume()
    }()
}
0

There are 0 best solutions below