我在 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/