APIからデータを正しく取り出してデコードし、アルゴリズムに使用する必要のあるすべてのデータにアクセスできるようになりました。APIからのデコードされたデータをアルゴリズムに使用する
デコード後にこのデータにアクセスする方法がわかりません。デコード後すぐに印刷できますが、別の機能や場所でアプリを使用する方法がわかりません。ここで
は私の遊び場です:
import PlaygroundSupport
PlaygroundPage.current.needsIndefiniteExecution = true
enum MyError : Error {
case FoundNil(String)
}
struct Level: Codable {
let time: Double
let close: Double
let high: Double
let low: Double
let open: Double
}
struct Response: Codable {
let data: [Level]
private enum CodingKeys : String, CodingKey {
case data = "Data"
}
}
func fetchData(completion: @escaping (Response?, Error?) -> Void) {
let url = URL(string: "https://min-api.cryptocompare.com/data/histominute?fsym=BTC&tsym=USD&limit=60&aggregate=3&e=CCCAGG")!
let task = URLSession.shared.dataTask(with: url) { (data, response, error) in
guard let data = data else { return }
do {
if let marketData = try? JSONDecoder().decode(Response.self, from: data) {
print(marketData.data[0].open)
print(marketData.data[1].open)
print("Average=", (marketData.data[0].open + marketData.data[1].open)/2)
//completion(marketData, nil)
throw MyError.FoundNil("data")
}
} catch {
print(error)
}
}
task.resume()
}
fetchData() { items, error in
guard let items = items,
error == nil else {
print(error ?? "Unknown error")
return
}
print(items)
}
は、どのように私は.dataセクションを使用することができます[0]、.dataの[1]、...、どこか?
することができます別の場所を定義してください –
別のファイルまたは関数と同様 – Wizzardzz