gpt4 book ai didi

swift - if 语句返回的值不适用于 UiLabel

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

我对 swift 和编程相当陌生,我正在尝试显示 if 语句中的值。这是我的 UiLabel 中的函数。我已经尝试了一些相同的变体,但它只返回“calculate.fuelTank”,它似乎永远不会触发我的 IF 语句的第二部分?

@IBOutlet weak var startingFuelDisplay: UILabel!  //not working yet
func refreshUiopeningFuel() {

if calculate.totalFuel <= Double(calculate.fuelTank) {

print (Double(calculate.fuelTank)) // FuelTank

} else {

print (calculate.totalFuel) // TotalFuel
}

我需要添加一个 bool 参数来触发“else”吗?我还尝试使用带有初始化字符串的“返回”函数,其中包含我试图提取的值,最后我需要它用于另一个显示器。

这是我的完整 View Controller 代码(我是新人,我确信它会更干净)

import UIKit

class ViewController: UIViewController {
let calculate = Inputs ( raceLaps: 13, fuelRate: 3.7, fuelTank: 110, laptime: 85.456, tyreWear: 0.05 )

@IBOutlet weak var rate: UITextField!
@IBOutlet weak var laps: UITextField!
@IBOutlet weak var tank: UITextField!
@IBOutlet weak var tyreWear: UITextField!
@IBOutlet weak var laptime: UITextField!

@IBOutlet var cancelKeyboard: UITapGestureRecognizer!


override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
//Looks for single or multiple taps.
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "dismissKeyboard")
view.addGestureRecognizer(tap)
}

//Calls this function when the tap is recognized.
func dismissKeyboard() {
//Causes the view (or one of its embedded text fields) to resign the first responder status.
view.endEditing(true)

}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
refreshUiFuel()
refreshUiStops()
refreshUiTyreLife()
refreshUiTyreLifeLaps()
refreshUiopeningFuel()
refreshUiBoxOnLap ()


}



@IBAction func calculate(sender: UIButton) {
if let rateVal = Double(rate.text!),
tankVal = Int(tank.text!),
lapVal = Int(laps.text!),
wearVal = Double(tyreWear.text!),
laptimeVal: Float = 85.456 {
let fuelModel = Inputs(raceLaps: lapVal, fuelRate: rateVal, fuelTank: tankVal, laptime: laptimeVal, tyreWear: wearVal )
totalFuelDisplay.text = ("\(Double(fuelModel.totalFuel))")
totalStopsDisplay.text = ("\(Int(fuelModel.totalStops))")
tyreLifeDisplay.text = ("\(Int(fuelModel.tyreChangesRaceDistanceTotal))")
tyreLifeLapsDisplay.text = ("\(Int(fuelModel.tyreLife))")
startingFuelDisplay.text = ("\(refreshUiopeningFuel())")
}
else {
totalFuelDisplay.text = "missing value"
totalStopsDisplay.text = "missing value"
tyreLifeDisplay.text = "missing value"
tyreLifeLapsDisplay.text = "missing value"
startingFuelDisplay.text = "missing Value"
}

}

@IBOutlet weak var totalFuelDisplay: UILabel!
func refreshUiFuel()->String {
return totalFuelDisplay.text!
}

@IBOutlet weak var totalStopsDisplay: UILabel!
func refreshUiStops()->String {
return totalStopsDisplay.text!
}

@IBOutlet weak var tyreLifeDisplay: UILabel!
func refreshUiTyreLife()->String {
return tyreLifeDisplay.text!
}
@IBOutlet weak var tyreLifeLapsDisplay: UILabel!
func refreshUiTyreLifeLaps()->String {
return tyreLifeLapsDisplay.text!
}
@IBOutlet weak var pitOnLapDisplay: UILabel!
func refreshUiBoxOnLap () {

}



@IBOutlet weak var startingFuelDisplay: UILabel! //not working yet
func refreshUiopeningFuel() ->Double {

print(calculate.fuelTank)
print(calculate.totalFuel)

if calculate.totalFuel <= Double(calculate.fuelTank) {

return Double(calculate.fuelTank) // FuelTank

} else {

return calculate.totalFuel // TotalFuel
}


}
}

欢迎所有帮助

最佳答案

从现实世界的自然逻辑来看,您似乎只是颠倒了 if/else 逻辑。看起来,如果 totalFuel 小于油箱容量(if 子句),在这种情况下您应该返回 totalFuel,并返回else 子句中的油箱容量。

关于swift - if 语句返回的值不适用于 UiLabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36046722/

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