当前位置: 首页 > 知识库问答 >
问题:

使用Xcode创建标签中的计时器时,在Swift 5中出现错误

罗寒
2023-03-14

我正在用Xcode中的Swift5编写一个应用程序。在一个视图控制器上,我创建了一个计时器,从20分钟到0分钟。我有一个我认为是成功的代码,但它抛回了一个错误。在队伍中

timer=timer.ScheduleDTimer(TimeInterval:0.01,target:self,selector:#selector(SkippingViewController.UpdateTimer),userInfo:nil,repeats:true)

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)
        }


    }
}

共有1个答案

长孙淳
2023-03-14

您的问题是,SkippingViewController.Swift中没有名为“Update Timer”的方法。您错误地将该方法放在方法'Pause WorkoutButtonDidTouch'中。为了解决该错误,在SkippingViewController.Swift中插入以下代码:

@objc func updateTimer() { 
    counter -= 0.01
    timeLabel.text = String(format: "%.01f", counter)
}
 类似资料:
  • 问题内容: 每当我在XCode 6 beta 4中进行构建时,都会出现此错误。这似乎使我的应用程序异常缓慢。 警告:* 使用空的LLDB目标在路径’/ ///***.app’处创建LLDB目标时出错,这可能会导致从远程设备读取内存的速度变慢。 这到底是什么意思,我该如何解决? 提前致谢! 问题答案: 您是否在64位设备上使用和运行您的应用程序?(iPhone 5S或iPhone 5S模拟器) 苹果

  • 错误500 JDK 1.8 Tomcat 8.0.38 HTTP状态500-处理JSP页面/index1时发生异常。11号线 类型异常报告 消息处理JSP页面/index1时发生异常。11号线 说明服务器遇到内部错误,无法满足此请求。 index1。jsp 通用域名格式。快乐的心情。业主立案法团。豆小豆。JAVA RegisterAndLoginController。JAVA web.xml WE

  • 我是Teradata的新手,使用游标创建了一些存储过程并得到了这个错误。请帮忙 用户引用的所有者对(表中的某些列)没有SELECT访问权限语法错误,在“;”之间应该有类似“END”的关键字和'Declare'关键字。‘。正在引用未定义的游标“abc”。用户引用的所有者对(表中的某些列)没有SELECT访问权限用户引用的所有者对(表中的某些列)没有SELECT访问权限引用未定义的游标'ABC'。正在

  • 在react native android中创建签名的apk时,我在最后一步遇到了以下错误 任务“:app:processReleaseResources”的执行失败。无法处理资源,有关详细信息,请参阅上面的aapt输出。 任务:app: Process ReleaseManifest C:\React\android\app\src\main\AndroidManifest.xml:13: 5-

  • 问题内容: 我想创建一种秒表,当分钟数达到20分钟时,会弹出一个对话框,该对话框不是问题。但是我的分钟变量在此代码中没有增加。 问题答案: 您可以使用以下方法真正简化整个程序:

  • 问题内容: 因此,我在Google上搜索了几分钟如何使用计时器,并在此处找到了一些有用的线程。但是,当我想使用建议的代码时,Eclipse总是向我显示错误。 这是我现在要使用的代码。Eclipse在最后一行下划线,并在它们建议“删除参数以匹配’Timer()’”时加下划线。此外,它强调了start()并希望将其强制转换。:S 有人可以帮我吗?我已经安装了最新的Java版本^^ 多谢。 问题答案: