gpt4 book ai didi

ios - 我的计时器没有重置也没有停止

转载 作者:可可西里 更新时间:2023-11-01 01:39:08 25 4
gpt4 key购买 nike

我想制作秒表。单击开始按钮我的计时器是开始按钮单击停止我的计时器不会停止。单击重置我的计时器重置然后重新开始是不正确的行为。请帮忙。我是 swift 的新手。任何帮助将不胜感激。提前致谢

 class ViewController: UIViewController {
@IBOutlet var label:UILabel?
var time: Int!
var appTimer :NSTimer = NSTimer()
override func viewDidLoad() {
super.viewDidLoad()
time = 0
label?.text = self.getFormattedString()
// Do any additional setup after loading the view.
}

}
extension ViewController
{
func getFormattedString() ->NSString
{

var t :Int = time!
var minQuotient :Int = time/600
var minRemainder:Int = time%600
var secQuotient:Int = minRemainder/10
var secRemainder:Int = minRemainder%10
var minString :NSString = NSString(format: "%d", minQuotient)
var secString :NSString = NSString(format: "%d", secQuotient)
if secQuotient < 10
{
secString = NSString(format: "0%@", secString)

}
var secRemainderString :NSString = NSString(format: "%d", secRemainder)
return NSString(format: "%@:%@.%@",minString,secString,secRemainderString)



}




@IBAction func statrt()
{
appTimer.invalidate()
var timer :NSTimer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector:Selector("stopWatch:") , userInfo: nil, repeats: true)
}

func stopWatch (theTimer:NSTimer)
{
time = time+1
var b : String = self.getFormattedString()
label?.text = b
}



@IBAction func stop()
{
self.appTimer.invalidate()
}


@IBAction func reset()
{
self.appTimer.invalidate()
time = 0
label!.text = self.getFormattedString()
}
}

最佳答案

你的计时器实例变量应该是可选的,而不是初始化为一个无效的计时器实例:

var appTimer :NSTimer?

然后,当您创建新的计时器实例时,您需要将其存储到该实例变量中,而不是仅仅将其创建为函数中的局部变量:

appTimer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector:Selector("stopWatch:") , userInfo: nil, repeats: true)

我还建议您尝试在使用 self. 时保持一致,这样您就知道自己在做什么与实例和本地状态管理相关。

关于ios - 我的计时器没有重置也没有停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32220959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com