Приведенный ниже код обращается к самым последним данным из API и сохраняет их в соответствующей структуре.
Теперь мне нужно получить доступ к 4 предыдущим дням и сохранить их, но я не знаю, с чего начать при доступе к структуре данных или вообще возможно ли это сделать без сохранения информации в базе данных для последующего доступа,
struct Root: Codable {
let metaData: [String: String]
let timeSeriesFX5Min: [String:Forex]
enum CodingKeys: String, CodingKey {
case timeSeriesFX5Min = "Time Series FX (DAILY)"
case metaData = "Meta Data"
}
}
// MARK: - TimeSeriesFX5Min
struct Forex: Codable {
let open, high, low, close: String
enum CodingKeys: String, CodingKey {
case open = "1. open"
case high = "2. high"
case low = "3. low"
case close = "4. close"
}
}
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let jsonUrlString = "https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=MSFT&apikey=demo"
let urlObj = URL(string: jsonUrlString)
URLSession.shared.dataTask(with: urlObj!) {(data, response, error) in
guard let data = data else { return }
do {
let forex = try JSONDecoder().decode(Root.self, from: data)
print(forex.metaData)
if let latestTime = forex.metaData["4. Last Refreshed"], let latestForex = forex.timeSeriesFX5Min[latestTime] {
}
} catch {
print(error)
}
}.resume()
}
}