昨天已经把 struct 写好了,今天来呈现资料在手机画面上,在此之前可以先上网搜寻 API 说明文件,方便自己刻 UI。
elementName 所代表的意义如下。
Wx. 天气现象. MaxT. 最高温度. MinT. 最低温度. CI. 舒适度. PoP. 降雨机率.
帮 Label 连接好 IBOutlet。
改写先前的程序,让 Label 呈现出资料。
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var locationName: UILabel!
@IBOutlet weak var Wx: UILabel!
@IBOutlet weak var PoP: UILabel!
@IBOutlet weak var MinT: UILabel!
@IBOutlet weak var CI: UILabel!
@IBOutlet weak var MaxT: UILabel!
@IBOutlet weak var startTime: UILabel!
@IBOutlet weak var endTime: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
var request = URLRequest(url: URL(string: "https://opendata.cwb.gov.tw/api/v1/rest/datastore/F-C0032-001?Authorization=CWB-6F803E34-66E5-4135-AC7D-25811AD53D5C&format=JSON&locationName=%E5%AE%9C%E8%98%AD%E7%B8%A3")!,timeoutInterval: Double.infinity)
request.httpMethod = "GET"
let task = URLSession.shared.dataTask(with: request){(data, respond, error) in
let decoder = JSONDecoder()
if let data = data, let weather = try? decoder.decode(Weather.self, from: data){
print(weather)
DispatchQueue.main.sync {
self.locationName.text = weather.records.location[0].locationName
self.Wx.text = weather.records.location[0].weatherElement[0].time[0].parameter.parameterName
self.PoP.text = weather.records.location[0].weatherElement[1].time[0].parameter.parameterName + "%"
self.MinT.text = weather.records.location[0].weatherElement[2].time[0].parameter.parameterName + "°" + weather.records.location[0].weatherElement[2].time[0].parameter.parameterUnit!
self.CI.text = weather.records.location[0].weatherElement[3].time[0].parameter.parameterName
self.MaxT.text = weather.records.location[0].weatherElement[4].time[0].parameter.parameterName + "°" + weather.records.location[0].weatherElement[4].time[0].parameter.parameterUnit!
self.startTime.text = weather.records.location[0].weatherElement[0].time[0].startTime
self.endTime.text = weather.records.location[0].weatherElement[0].time[0].endTime
}
}
else {
print("error")
}
}
task.resume()
}
}
执行看看。
>>: 【少女人妻的30天Elastic】Day 27 : App Search_API 介绍与应用_Search Settings
确认导入范围 旨在确认企业或机构的决心,与实际要推广的范围。 订定资安目标 资安目标可以参考同业或客...
GOOGLE登入 第八步:宣告 GoogleSignInClient mgoogleSignInCl...
现在有不少的软件会有一个特殊的版本叫Nightly,从字面上的意思就可以得知是指每个晚上发行的版本,...
前言 因为今天已经来到倒数第二天! 觉得应该要把之前介绍过的东西全部融合在一起展现出来, 也算是成果...
struct 是命名并封装数个栏位数值所组合的自订型别 struct 有 3 种类型 元组结构体(t...