Error: Expression pattern of type 'CountableClosedRange<Int>' cannot match values of type 'UITextField!'
Error: Expression pattern of type 'CountableClosedRange<Int>' cannot match values of type 'UITextField!'
我在构建 运行 Swift 中的代码时遇到上述错误。我试图做到这一点,以便用户可以输入一个数字,然后 switch 语句将返回与该数字对应的以下打印。
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var numberInput: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
@IBAction func inputText(_ sender: Any) {
switch numberInput {
case 0 ... 50:
print("Number is between 0 & 50")
case 51 ... 100:
print("Number is between 51 & 100")
case 101 ... 150:
print("Number is between 101 & 150")
default:
print("Fallback option")
}
}
}
您必须从textField 中获取Text,它是String 类型,而不是数字。您必须先将其转换为数字,然后在采用 Integer 范围的 switch 语句中使用它。
guard let text = numberInput?.text,let number = Int(text) else { return }
switch number {
case 0 ... 50:
print("Number is between 0 & 50")
case 51 ... 100:
print("Number is between 51 & 100")
case 101 ... 150:
print("Number is between 101 & 150")
default:
print("Fallback option")
}
我在构建 运行 Swift 中的代码时遇到上述错误。我试图做到这一点,以便用户可以输入一个数字,然后 switch 语句将返回与该数字对应的以下打印。
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var numberInput: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
@IBAction func inputText(_ sender: Any) {
switch numberInput {
case 0 ... 50:
print("Number is between 0 & 50")
case 51 ... 100:
print("Number is between 51 & 100")
case 101 ... 150:
print("Number is between 101 & 150")
default:
print("Fallback option")
}
}
}
您必须从textField 中获取Text,它是String 类型,而不是数字。您必须先将其转换为数字,然后在采用 Integer 范围的 switch 语句中使用它。
guard let text = numberInput?.text,let number = Int(text) else { return }
switch number {
case 0 ... 50:
print("Number is between 0 & 50")
case 51 ... 100:
print("Number is between 51 & 100")
case 101 ... 150:
print("Number is between 101 & 150")
default:
print("Fallback option")
}