मेरे पास उलटी गिनती लागू है लेकिन वर्तमान में मान प्रदर्शित करने के लिए असाइन किया गया लेबल मान बिल्कुल नहीं दिखा रहा है। मैंने यह देखने के लिए प्रिंट (उलटी गिनती लेबल) की कोशिश की है कि यह रिकॉर्डिंग कर रहा है जिसमें लेबल के गुण वापस आ गए हैं और उलटी गिनती नहीं है। अग्रिम में धन्यवाद!

class CountdownViewController: UIViewController {

    @IBOutlet weak var iconImage: UIImageView!
    @IBOutlet weak var countdownLabel: UILabel!

    //Countdown
    let futureDate: Date = {
        let future = DateComponents(
            year: 2021,
            month: 1,
            day: 06,
            hour: 09,
            minute: 32 ,
            second: 45
        )
        return Calendar.current.date(from: future)!

    }()

    var countdown: DateComponents {
        return Calendar.current.dateComponents([.day, .hour, .minute, .second], from: Date(), to: futureDate)
    }

    @objc func updateTime() {
        let countdown = self.countdown //only compute once per call
        let days = countdown.day!
        let hours = countdown.hour!
        let minutes = countdown.minute!
        let seconds = countdown.second!
        self.countdownLabel.text = String(format: "%02d:%02d:%02d:%02d", days, hours, minutes, seconds)
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        func runCountdown() {
            Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(updateTime), userInfo: nil, repeats: true)
        }
        runCountdown()
        (print(countdown))
        (print(countdownLabel as Any))
    }
}
1
Daniel M 18 अप्रैल 2020, 17:43

1 उत्तर

सबसे बढ़िया उत्तर

आपके कोड में समस्या यह है कि आपने runCountdown() को किसी अन्य फ़ंक्शन viewDidLoad() के अंदर घोषित किया, लेकिन, आपने runCountdown() को बाद में कॉल नहीं किया।

override func viewDidLoad() {
    super.viewDidLoad()
    func runCountdown() {
        Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(updateTime), userInfo: nil, repeats: true)
    }
    runCountdown()
    (print(countdown))
    (print(countdownLabel as Any))
}
-1
Sateesh Yemireddi 18 अप्रैल 2020, 15:19