swift - 从标签创建计时器时,使用 Xcode 在 Swift 5 中出错

标签 swift xcode uibutton uilabel

我在 Xcode 中使用 Swift 5 编写应用程序代码。在一个 View Controller 上,我正在创建一个计时器,它从 20 分钟倒数到 0。我认为这是一个成功的代码,但它会返回一个错误。在行中

timer = Timer.scheduledTimer(timeInterval: 0.01, target: self, selector: #selector(SkippingViewController.updateTimer), userInfo: nil, repeats: true)

它给出了一个错误说 Type 'SkippingViewController' has no member 'updateTimer' (SkippingViewController 是我的计时器打开的应用程序页面的 View Controller 的名称) 我该如何解决这个问题?

import UIKit

class SkippingViewController: UIViewController {

    @IBOutlet weak var timeLabel: UILabel!

    @IBOutlet weak var startWorkoutButton: UIButton!

    @IBOutlet weak var pauseWorkoutButton: UIButton!

    var timer = Timer()
    var counter = 20.00
    var isRunning = false

    override func viewDidLoad() {
        super.viewDidLoad()


        timeLabel.text = "\(counter)"
        startWorkoutButton.isEnabled = true
        pauseWorkoutButton.isEnabled = false
        // Do any additional setup after loading the view.
    }

    @IBAction func startWorkoutButtonDidTouch(_ sender: Any) {

        if !isRunning {
            timer = Timer.scheduledTimer(timeInterval: 0.01, target: self, selector: #selector(SkippingViewController.updateTimer), userInfo: nil, repeats: true)

            startWorkoutButton.isEnabled = false
            pauseWorkoutButton.isEnabled = true
            isRunning = true
        }

    }

    @IBAction func pauseWorkoutButtonDidTouch(_ sender: Any) {

        func updateTimer() {
            counter -= 0.01
            timeLabel.text = String(format: "%.01f", counter)
        }


    }
}

最佳答案

您的问题是,在 SkippingViewController.swift 中没有名为“updateTimer”的方法。您错误地将方法放在方法“pauseWorkoutButtonDidTouch”中。为了解决错误,将以下代码插入 SkippingViewController.swift:

@objc func updateTimer() { 
    counter -= 0.01
    timeLabel.text = String(format: "%.01f", counter)
}

关于swift - 从标签创建计时器时,使用 Xcode 在 Swift 5 中出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57746777/

相关文章:

xcode - 如何安全地完全清理/重置 Xcode 中的 iOS 配置文件和证书?

ios - 根据字符串长度更改 UIButton 大小

ios7 - 如何在 iOS 7 上获得拨号盘蜂鸣声

iOS swift : EXC_BAD_INSTRUCTION

ios - 使用 didSet 将目标添加到 UITableViewCell 中的 UIButton

ios - detailTextLabel 未显示,但已设置 100%

cocoa - 组获取/数据更新(类结构设计)

ios - 使用文件管理器创建文件时如何在 UI 中显示事件指示器

swift - 如何在 Swift 中正确测量后台运行时间

ios - 有什么方法可以配置针对一个特定模拟器启动的测试吗?