gpt4 book ai didi

swift - float if 语句返回错误 || swift

转载 作者:行者123 更新时间:2023-11-30 10:19:12 26 4
gpt4 key购买 nike

这是我的 if 语句:

if !DAGNViewControllerInstance.DValueVar<=5 || !DAGNViewControllerInstance.DValueVar>=1 || !DAGNViewControllerInstance.AValueVar<=6 || !DAGNViewControllerInstance.AValueVar>=2 || !DAGNViewControllerInstance.GValueVar<=3 || !DAGNViewControllerInstance.GValueVar>=2 || !DAGNViewControllerInstance.NValueVar<=3 || !DAGNViewControllerInstance.NValueVar>=1 || !DAGNViewControllerInstance.TValueVar<=9999 || !DAGNViewControllerInstance.TValueVar>=1 {

self.ErrorField.text = "One or more values are not in range!"
}

此 if 语句检查变量以查看它是否在范围内。但每当我尝试构建代码时,我都会从该 if 语句中收到错误。

Swift 编译器错误无法调用“||”带有类型为“($T88, $T96)”的参数列表

ValueVar 是 float 。 DAGNViewControllerInstance 是此 UIViewController 子类的实例:

import UIKit
extension String {
var floatValue: Float {
return (self as NSString).floatValue
}
}
class DAGNViewController: UIViewController {
@IBOutlet weak var DValue: UITextField!
@IBOutlet weak var AValue: UITextField!
@IBOutlet weak var GValue: UITextField!
@IBOutlet weak var NValue: UITextField!
@IBOutlet weak var TValue: UITextField!
var DValueVar: Float = Float()
var AValueVar: Float = Float()
var GValueVar: Float = Float()
var NValueVar: Float = Float()
var TValueVar: Float = Float()

@IBAction func GOButtonPressed(sender: UIButton) {
DValueVar = DValue.text.floatValue
AValueVar = AValue.text.floatValue
GValueVar = GValue.text.floatValue
NValueVar = NValue.text.floatValue
TValueVar = NValue.text.floatValue
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.

}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}


}

值 IBOutlet 链接到 UITextFields。 if 语句位于另一个 UIViewController 子类中,该子类是 Storyboard中 UIView 的自定义类,其中有一个我想要显示错误消息的标签。

有谁知道我为什么会收到错误,或者如何修复它?

最佳答案

问题可能在于运算符应用的顺序,以及数字文字的模糊性(可能是 float 、 double 、整数等)。例如,在更简单的情况下:

let d = 12.3
let e = 45.6

// error: cannot invoke '>=' with an argument list of type '($T6, $T12)'
if !d>=3 || !e>=4 { }

// compiles without error
if !(d>3) || !(e>=4) { }

尝试将括号应用于各种表达式,这应该可以解决问题。

附注您可能需要考虑使用间隔来简化此操作:

let d = 6.5
if !(1...5).contains(d) {
println("d not within range")
}

关于swift - float if 语句返回错误 || swift ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28265859/

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