swift - 如何在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()
}
解决方案
推荐阅读
- spring-boot - 如何对接受参数的方法进行 REST API 调用
- mysql - 计算多个字段,包括空字段
- linux - 通过 & 命令在后台运行的服务和进程之间的区别
- javascript - JavaScript 获取请求网站并运行 document.querySelector
- postgresql - 在 Postgresql db 上使用 ALTER SEQUENCE 进行 Sqitch 迁移没有效果
- spring-boot - Swagger 在发布请求中找不到没有 @RequestBody 的模型
- android - 从 GoogleFit API 获取空值 - 心率聚合
- mysql - Kubernestes 中的作业出错(如何使用 Kubernetes 部署 Rails 应用程序?)
- elasticsearch - 如何在 ElasticSearch 中使用具有 _score 值的范围函数?
- core-data - 通过关系忽略没有相关实体的实体,形成具有标题标题的核心数据实体列表