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()
}()
}