как на label вывести настоящее время с постоянным обновлением swift

    let date = Date()
    let calendar = Calendar.current
    let hour = calendar.component(.hour, from: date)
    let minutes = calendar.component(.minute, from: date)
    let seconds = calendar.component(.second, from: date)
    let hourString = String(hour)
    let minutesString = String(minutes)
    let secondsString = String(seconds)
    
    SecondLabel.text = hourString + ":" + minutesString + ":" + secondsString


    updatelabel = Timer.scheduledTimer(timeInterval: 0, target: self,
                                                selector: #selector(setter: SecondLabel), userInfo: nil, repeats: true)

Ответы (1 шт):

Автор решения: schmidt9
class ViewController: UIViewController {
    
    @IBOutlet var secondLabel: UILabel!
    
    private var timer: Timer!

    override func viewDidLoad() {
        super.viewDidLoad()
        
        timer = Timer.scheduledTimer(timeInterval: 1,
                                     target: self,
                                     selector: #selector(countSeconds(_:)),
                                     userInfo: nil,
                                     repeats: true)
    }
    
    @objc func countSeconds(_ sender: Timer) {
        let date = Date()
        let calendar = Calendar.current
        let hour = calendar.component(.hour, from: date)
        let minutes = calendar.component(.minute, from: date)
        let seconds = calendar.component(.second, from: date)
        let hourString = String(hour)
        let minutesString = String(minutes)
        let secondsString = String(seconds)
        
        DispatchQueue.main.async {
            self.secondLabel.text = hourString + ":" + minutesString + ":" + secondsString
        }
    }

}
→ Ссылка