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

问题描述 投票:0回答:2

我正在尝试创建一个有点时间的时间应用程序,例如我想在应用程序中实时实时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”的初始值设定项

任何帮助都会很棒。

swift timer nstimer
2个回答
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)
}

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初始值设定项的原因。

© www.soinside.com 2019 - 2024. All rights reserved.