gpt4 book ai didi

ios - 'CountableClosedRange' 类型的表达式模式无法匹配 'Int' 类型的值?

转载 作者:搜寻专家 更新时间:2023-10-31 08:13:03 26 4
gpt4 key购买 nike

在 Swift 3 之前,这段代码可以正常工作,没有任何编译错误,但是在转换为 Swift 3 之后,这段代码无法编译,我不完全理解值类型有何不同。

给出的错误是expression pattern of type 'CountableClosedRange<Int>' cannot match values of type 'Int'对于我尝试在 switch 语句中使用不同范围的值的 switch 情况:

switch hour {
case 0 ... 11:
greetingStatement.text = "Good Morning"
case 12 ... 24:
greetingStatement.text = "Good Evening"
default:
greetingStatement.text = "Hello"
}

完整代码如下:

import UIKit

class ViewController: UIViewController {


@IBOutlet weak var userInput: UITextField!
@IBOutlet weak var usertOutput: UILabel!

@IBOutlet weak var tapMeAfterEnteringYourName: UIButton!

@IBOutlet weak var greetingStatement: UILabel!
@IBOutlet weak var letsGetStartedLabel: UILabel!

@IBOutlet weak var ballonsImageView: UIImageView!
@IBOutlet weak var teacherPointingToBoardImage: UIImageView!
@IBAction func setOutput(_ sender: AnyObject){
greetingStatement.isHidden = false
usertOutput.text=userInput.text
tapMeAfterEnteringYourName.isHidden = true
userInput.isHidden = true
letsGetStartedLabel.isHidden = false
ballonsImageView.isHidden = false

let date = Date()
let calendar = Calendar.current
let components = (calendar as NSCalendar).components([.hour], from: date)
let hour = components.hour
switch hour {
case 0 ... 11:
greetingStatement.text = "Good Morning"
case 12 ... 24:
greetingStatement.text = "Good Evening"
default:
greetingStatement.text = "Hello"
}
view.backgroundColor = UIColor.magenta
teacherPointingToBoardImage.isHidden=true

var timer = Timer.scheduledTimer(timeInterval: 1.4, target: self, selector: #selector(ViewController.updateViewController), userInfo: nil, repeats: false)


let hover = CABasicAnimation(keyPath: "position")
hover.isAdditive = true
hover.fromValue = NSValue(cgPoint: CGPoint.zero)
hover.toValue = NSValue(cgPoint: CGPoint(x: 0.0, y: -100.0))
hover.autoreverses = true
hover.duration = 5
hover.repeatCount = Float.infinity
ballonsImageView.layer.add(hover, forKey: "myHoverAnimation")



}

func updateViewController() {

print("Timer just fired")
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let resultViewController = storyBoard.instantiateViewController(withIdentifier: "MadLibOneViewController") as! MadLibOneViewController
self.present(resultViewController, animated:true, completion:nil)

}

override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor=UIColor.purple
usertOutput.textColor=UIColor.white
userInput.textColor = UIColor.purple
greetingStatement.isHidden = true
letsGetStartedLabel.isHidden = true
ballonsImageView.isHidden = true







}

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


}

有人可以澄清这只是一个泛型,其中允许或期望任何类型的 Int 吗?

最佳答案

该错误具有误导性。问题是 hour 是一个可选的 Int

我会将代码更改为:

if let hour = components.hour {
switch hour {
case 0 ... 11:
greetingStatement.text = "Good Morning"
case 12 ... 24:
greetingStatement.text = "Good Evening"
default:
greetingStatement.text = "Hello"
}
}

关于ios - 'CountableClosedRange<Int>' 类型的表达式模式无法匹配 'Int' 类型的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40163679/

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