swift - 倒数计时器将不起作用,因为它不接受本地功能

标签 swift xcode countdown

每次我在使用带选择器的 Timer.Scheduledtimer 时尝试定义一个函数。它显示以下错误。我不确定如何克服这个问题。我也想知道是否有任何方法可以将标签连接到倒计时,即在屏幕上 0:59、0:58 等。

谢谢。

我已经尝试过不同网站的各种功能,但同样的问题总是再次出现

var seconds = 0

var timer: Timer?

let countdownLabel: SKLabelNode! = {   
let label = SKLabelNode(fontNamed: "BubbleGum")
   label.zPosition = 2
   label.color = SKColor.white
   label.position = CGPoint(x: 0 - 130, y:self.frame.size.height/15 
+ 390)
   return label
    }()
    countdownLabel.text = String(seconds)

    func counter (){
        seconds -= 1
        countdownLabel.text = String(seconds)
        if (seconds == 0)
        {
            timer!.invalidate()
        }

    }


    timer = Timer.scheduledTimer(timeInterval: 1, target: self, 
  selector: #selector(counter), userInfo: nil, repeats: true)



    self.addChild(countdownLabel)



}

这是出现的错误消息: “#selector”的参数不能引用局部函数“counter()”

最佳答案

使用@objc 注释您的counter 函数或使用闭包

@objc func counter () {
   ...
}

使用闭包:

timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: false) { timer in
    seconds -= 1
    countdownLabel.text = String(seconds)
    if (seconds == 0)
    {
        timer!.invalidate()
    }
}

关于swift - 倒数计时器将不起作用,因为它不接受本地功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56522774/

相关文章:

ios - 将 Objective-C 桥接到 Swift 项目

Jquery 多个事件的倒计时器

Javascript 倒计时功能无法正常工作

swift - 中心对齐 subview

ios - 通过推送通知打开特定的 View Controller

ios - XCode 找不到特定 iOS 库/框架项目的符号

objective-c - 解决 Cocoa 中的 EXC_BAD_ACCESS 问题?

javascript - 如何让JavaScript和JQuery显示3位数字的天数

ios - Swift 中仅平滑顶部角度和 ImageView

ios - 不显示导航栏