首页 > 解决方案 > 如何在swift中调用另一个文件中的getJSON函数

问题描述

如何在不同的 swift (view) 文件中调用以下函数,以便显示 print 语句(不在注释 (*/) 中的语句)?

我尝试将函数传递给新视图中的变量,但这没有奏效。

完全删除“do”语句是否也更容易?

 func getJSON(){
        guard let url = URL(string: "https://raw.githubusercontent.com/owid/covid-19-data/68c39808d445fe90b1fe3d57b93ad9be20f796d2/public/data/latest/owid-covid-latest.json") else{
            return
        }
        let request = URLRequest(url: url)
        URLSession.shared.dataTask(with: request){ (data, response, error) in
            if let error = error{
                print(error.localizedDescription)
                return
            }
            guard  let data = data else{
                return
            }
            let decoder = JSONDecoder()
            do {
                //let decodedData = try decoder.decode([String:Country].self, from: data)
                //print (decodedData)
                let res = try decoder.decode([String:Country].self, from: data)
                let locations = Array(res.values).map { $0.location}
                let caseNumbers = Array(res.values).map{ $0.numberCheck}
                let vaccineNumbers = Array(res.values).map{ $0.vaccineCheck}
                
                /*Dual for loop
                 for (x, y) in zip(locations, caseNumbers) {
                    print("Country: ", x, " \t\t Yesterdays case numbers: ", y, ".")
                }*/
                
                ***for item in 0..<locations.count{
                    print("Country: ", locations[item], "\nCase Numbers 24hrs: ", caseNumbers[item], "\nNumber of People Fully Vaccinated: ", vaccineNumbers[item],"\n\n")***
                    
                    //Potential use in App when certain country is selected
                    //if locations[item] == "United Kingdom" {
                        //print(caseNumbers[item])}
                }
            }
            catch {
                print(error)
            }
        }.resume()
    }

标签: swiftfunction

解决方案


推荐阅读