Swiftui 未将JSON数据复制到结构

Swiftui 未将JSON数据复制到结构,swiftui,Swiftui,此api被正确调用,未落入“获取失败”错误行。ContentView结构包含一个底部带有.onAppear的标准菜单。使用Xcode调试器,我可以在decodedResponse中看到数据,但在result中看不到。真的有必要使用@State结果吗?result/UserRates中的一些值将立即取出并存储在其他位置。我也想使用检索的日期,但目前我的结果定义保留其未定义的日期。我假设要从结构中检索数据,它是:UserRates.rates[9]。key和UserRates.rates[9]。va

此api被正确调用,未落入“获取失败”错误行。ContentView结构包含一个底部带有.onAppear的标准菜单。使用Xcode调试器,我可以在decodedResponse中看到数据,但在result中看不到。真的有必要使用@State结果吗?result/UserRates中的一些值将立即取出并存储在其他位置。我也想使用检索的日期,但目前我的结果定义保留其未定义的日期。我假设要从结构中检索数据,它是:UserRates.rates[9]。key和UserRates.rates[9]。value。尝试使用print语句读取这些语句将返回错误

盖伦·史密斯

struct UserRates: Codable {
    let rates:[String: Double]   
    let base: String
    let date: String
}

struct ContentView: View {

    @State private var results = UserRates(rates: [:], base: "", date: "")
   
    var body: some View {

    ... standard menu system in body

     .onAppear(perform: loadCurrencies)
    }


private func loadCurrencies() {
 guard let url = URL(string: "https://api.exchangeratesapi.io/latest?base=USD") else {
                print("Invalid URL")
                return
            }
            let request = URLRequest(url: url)
            URLSession.shared.dataTask(with: request) { data, response, error in
                if let data = data {
                    if let decodedResponse = try? JSONDecoder().decode(UserRates.self, from: data) {
                        // we have good data – go back to the main thread
                        DispatchQueue.main.async {
                            // update our UI
                            **self.results = decodedResponse**
                        }
                       return
                    }
                }
                // problem if we fail into this
                print("Fetch failed: \(error?.localizedDescription ?? "Unknown error")")
            }.resume()
        }
}

我计划将decodedResponse中的32个字符串/双精度数据对复制到UserRates结构,然后使用dictionary键/值方法查找并复制11个汇率到rateArray。但是由于复制总是失败,我决定在decodedResponse结构上使用dictionary key/value方法,直接复制到rateArray,完全跳过UserRate结构。我可能在将来使用更多的汇率,这就是为什么我从我的来源加载所有可用的汇率。rateArray的真正目的是存储汇率的倒数

加伦