首页 > 解决方案 > (Swift 5) 在函数之间传递变量

问题描述

我需要从不同函数中的函数访问变量,但 Xcode 没有向我显示自动填充中的变量。

我想访问变量trinkgeldAnzeigegesamtKostenAnzeigekostenProPersonAnzeigefrom ausrechnenDerKosteninUIElementeAnzeigen

这是代码:

func ausrechnenDerKosten() {    
    if !(betragEingeben.text!.isEmpty) && !(personen.text!.isEmpty) {
        betrag = Double(betragEingeben.text!)!
        trinkgeldAnzeige = Double(prozentSlider.value)

        trinkgeldAnzeige = (betrag * trinkgeldAnzeige) / 100
        gesamtKostenAnzeige = betrag + trinkgeldAnzeige
        kostenProPersonAnzeige = gesamtKostenAnzeige / Double(personenAnzeige)

        UIElementeAnzeigen()      
    } else {
        anzeige(message: "Bitte Zahl Eingeben!")
    }
}

我需要在这里访问变量:***Variable***(placeholder)


func UIElementeAnzeigen() {
    let trinkgeldAnzeigenLabel = String(format: "%.2f", ***Variable***)
    let kostenProPersonAnzeigeLabel = String(format: "%.2f", ***Variable***)
    let gesamtKostenAnzeigeLabel = String(format: "%.2f", ***Variable***)

    trinkgeldAnzeigenLabel.text = "Trinkgeld: " + trinkgeldAnzeigenLabel + " euro"
    kostenProPersonAnzeigeLabel.text = "Trinkgeld: " + kostenProPersonAnzeigeLabel + " euro"
    gesamtKostenAnzeigeLabel.text = "Trinkgeld: " + gesamtKostenAnzeigeLabel + " euro"
}

但正如我所描述的,Xcode 并没有在我编写变量以自动填充变量的地方显示我。

标签: iosswiftfunctionvariables

解决方案


如果trinkgeldAnzeige,gesamtKostenAnzeigekostenProPersonAnzeige是属性,您可以UIElementeAnzeigen按照@vadian 解释的方法直接访问它们。您可以判断它们是否是属性,因为您将在函数之外定义它们,如下所示:

var trinkgeldAnzeige: Double = 0
var gesamtKostenAnzeige: Double = 0
var kostenProPersonAnzeige: Double = 0

否则,您需要修改声明UIElementeAnzeigen以将它们作为参数:

func UIElementeAnzeigen(_ trinkgeldAnzeige: Double, _ gesamtKostenAnzeige: Double, _ kostenProPersonAnzeige: Double)

你可以这样称呼它:

UIElementeAnzeigen(trinkgeldAnzeige, gesamtKostenAnzeige, kostenProPersonAnzeige)

如果您不在_函数声明中的每个变量之前添加,您可以使用以下命令调用它:

UIElementeAnzeigen(trinkgeldAnzeige: trinkgeldAnzeige, gesamtKostenAnzeige: gesamtKostenAnzeige, kostenProPersonAnzeige: kostenProPersonAnzeige)

推荐阅读