Я пытаюсь получить данные json из API, разобрать их в массив struct и распечатать массив. Но когда я пытаюсь распечатать его, возвращается только пустой массив. Я пытаюсь понять, как писать код для асинхронных операций, и я не уверен, куда идти дальше. Может ли кто-нибудь указать мне правильное направление?
Я пробую это на игровых площадках, используя Xcode 9, Swift 4.
import Foundation
struct Item: Decodable {
var userId: Int?
var id: Int?
var title: String?
var body: String?
}
var items = [Item?]()
let completionHandler = { (data: Data?, response: URLResponse?, error: Error?) in
if error != nil {
print("Error occured: \(error.debugDescription)")
}
let decoder = JSONDecoder()
do {
items = try decoder.decode([Item].self, from: data!)
print(items)
} catch {
print("Error: Unable to fetch data")
}
}
func getJson() {
let url = URL(string: "https://jsonplaceholder.typicode.com/posts")!
let session = URLSession.shared
let task = session.dataTask(with: url, completionHandler: completionHandler)
task.resume()
print(items)
}
getJson()