Проблема с получением таймера обратного отсчета для работы на swiftUI - PullRequest
0 голосов
/ 16 апреля 2020

Я довольно новичок в Swift, и у меня возникла проблема с запуском обратного отсчета. В настоящее время я получаю сообщение об ошибке.

  1. Метка, которую я назначил в качестве текста обратного отсчета Не отображается обратный отсчет.

Заранее благодарен за любую помощь.

import UIKit
import SwiftUI

class CountdownViewController: UIViewController {



    @IBOutlet weak var countdownLabel: UILabel!

        let futureDate: Date = {
        let future = DateComponents(
                      year: 2020,
                      month: 12,
                      day: 03,
                      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)
                     }
}
}

1 Ответ

0 голосов
/ 16 апреля 2020
  1. Ошибка: вы получаете ошибку, потому что объявляете переменную внутри viewDidLoad (). Вы должны объявить это вне viewDidLoad ().
  2. Ошибка: существует та же проблема. Объявите функцию updateTime () вне viewDidLoad (), и ошибка больше не должна появляться.

Я надеюсь, что смогу помочь:)

...