如何在计时器应用程序上延迟几秒钟?

时间:2018-09-06 19:39:41

标签: swift timer nstimer

我正在尝试创建一个时间应用程序,该应用程序的时间还差一点,例如我希望应用程序中的时间实际上是1.5秒。目前,我在更改时间标签时遇到错误,并且不知道从哪里开始调整我想要的时间(与实时时间相比)。

func updateCounter() {
   timeLabel.text = String(counter+=1)
}

override func viewDidLoad()
{
    super.viewDidLoad()

    var timer = Timer()
    var counter = 0
    timeLabel.text = String(counter)
}

我收到以下错误。

  

无法为类型为'(())'的参数列表调用类型'String'的初始化程序

任何帮助都会很棒。

2 个答案:

答案 0 :(得分:0)

您必须使变量counter为全局变量,并在updateCounter()内的另一行中增加计数器:

var counter = 0

func  {
   counter += 1
   timeLabel.text = String(counter)
}

override func viewDidLoad()
{
   super.viewDidLoad()
    var timer = Timer()
    timeLabel.text = String(counter)
}

counter+=1不返回值,这就是为什么您不能将其作为参数传递给String初始值设定项的原因。

答案 1 :(得分:0)

var aTimer: Timer!
let defaultTimeInterval = 1.5
var counter = 0.0
var adjustedCounter = 0.0
let timeLabel = UILabel()

override func viewDidLoad() {
    super.viewDidLoad()
    aTimer = Timer.scheduledTimer(timeInterval: defaultTimeInterval, target: self, selector: #selector(updateCounter), userInfo: nil, repeats: true)
}

@objc func updateCounter() {
    counter += defaultTimeInterval
    adjustedCounter += 1
    let displayText = "original: \(counter)  adjusted: \(adjustedCounter)"
    timeLabel.text = displayText
    print(displayText)
}