gpt4 book ai didi

ios - 无法让 UIButton 调用 Swift 4 中的代码块

转载 作者:行者123 更新时间:2023-11-30 11:15:41 25 4
gpt4 key购买 nike

我试图在单击按钮(GoButton)后调用一大块代码来运行,我尝试过这样做,但它只是崩溃了,我有时还会收到我的按钮等于 nil 的错误。有什么建议吗?下面的所有代码在没有按钮的情况下都可以正常工作,我希望它在按下后运行。另外,我是快速编程的新手,如果这真的很容易,我很抱歉。谢谢

代码如下:

 override func viewDidLoad() {
super.viewDidLoad()

func GoButton(_ sender: Any) {

guard let APIUrl = URL(string: "https://api.openweathermap.org/data/2.5/weather?q=Crowland&appid=***APIKEY***&units=Metric") else { return }


URLSession.shared.dataTask(with: APIUrl) { data, response, error in
guard let data = data else { return }

let decoder = JSONDecoder()


do {
let weatherData = try decoder.decode(MyWeather.self, from: data)

if (self.MainLabel != nil)
{
if let gmain = weatherData.weather?.description {
print(gmain)
DispatchQueue.main.async {
self.MainLabel.text! = "Current Weather in: " + String (gmain)
}
}
}

if (self.LocationLabel != nil)
{
if let gmain = weatherData.name {
print(gmain)
DispatchQueue.main.async {
self.LocationLabel.text! = "Current Weather in: " + String (gmain)
}
}
}


if (self.HumidityLabel != nil)
{
if let ghumidity = weatherData.main?.humidity
{
print(ghumidity, "THIS IS HUMIDITY")
DispatchQueue.main.async {
self.HumidityLabel.text! = String (ghumidity)
}
}
}

if (self.WindLabel != nil)
{
if let gspeed = weatherData.wind?.speed {
print(gspeed, "THIS IS THE SPEED")
DispatchQueue.main.async {
self.WindLabel.text! = String(gspeed) + " mph"
}
}
}

if (self.TempLabel != nil)
{
if let ggtemp = weatherData.main?.temp {
print(ggtemp, "THIS IS THE TEMP")
DispatchQueue.main.async {
self.TempLabel.text! = String (ggtemp) + " c"
}
}
}


} catch {
print(error.localizedDescription)
}
}.resume()
}
}


override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}

最佳答案

您的 GoButton 函数似乎在您的 viewDidLoad 方法内部?这绝对不应该是nested functions的情况。默认情况下对外界隐藏。

如果您使用 Storyboard,将按钮单击链接到操作的正确方法是通过 Storyboard和 IBActions 来完成。有很多视频/文本教程向您展示如何做到这一点。这是一个我个人喜欢的视频教程,因为它的清晰度考虑到您是 Swift 新手 - https://www.youtube.com/watch?v=Opz3juSW43Q 。 (我既不拥有此链接中的视频内容,也没有任何关系,我只是将其链接到此处,因为我认为它可能会有所帮助)。

关于ios - 无法让 UIButton 调用 Swift 4 中的代码块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51776872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com