【发布时间】:2020-07-26 15:52:37
【问题描述】:
我正在使用 Instagram API,但遇到以下问题:我设法解码和访问 JSON 数据,但是当我尝试访问 SwiftUI 视图中的某个值时,我遇到以下错误:线程 1:致命错误: 索引超出范围。我完全知道这是由 API 加载是异步的事实触发的,但我找不到解决此问题的方法。
非常感谢您的帮助
您可以在下面找到 API 响应
在这里你可以找到我的模型和 JSON 解码器
struct InstaAPI: Codable {
var name: String
var period: String
var description: String
var values: [ValueResponse]
}
struct ValueResponse: Codable {
let value: String
}
struct Entry: Codable {
let data: [InstaAPI]
}
class getData: ObservableObject {
@Published var response = [Entry]()
init() {
downloadJSON(from: URL(string: "https://graph.facebook.com/v6.0/17841402116620153/insights?metric=impressions&period=day&access_token=accounttoken")!)
}
func downloadJSON(from url: URL) {
URLSession.shared.dataTask(with: url) { data, response, error in
if let data = data {
let jsonDecoder = JSONDecoder()
do {
let parsedJson = try jsonDecoder.decode(Entry.self, from: data)
DispatchQueue.main.async {
self.response.append(parsedJson)
}
for data in parsedJson.data {
print(data.values[0].value)
}
} catch {
print(error)
}
}
}.resume()
}
}
【问题讨论】:
标签: json swift xcode api swiftui