これを正しいスコープに入れることができません。私はそれは非常にシンプルなものだと確信していますが、私はそれで壁に頭を打っています。私が見つけた答えは速いので、これを解決する方法を理解するのに苦労しています。#selectorのタイマースコープの問題
現在の問題は、タイマーを正しく初期化してカウントしようとしています。 「セレクタ」が最も問題を引き起こしています。残りの部分は後で分かると確信しています
コードは以下の通りです。
@IBOutlet weak var shortTimerLabel: UILabel!
@IBOutlet weak var longTimerLabel: UILabel!
var seconds = 60 //This variable will hold a starting value of seconds. It could be any amount above 0.
var timer = Timer()
var isTimerRunning = false //This will be used to make sure only one timer is created at a time.
@IBAction func longpressed(_ gestureRecognizer: UILongPressGestureRecognizer) {
shortTimerLabel.text = "longPressed"
}
@IBAction func tappedShortTimer(_ gestureRecognizer: UITapGestureRecognizer) {
shortTimerLabel.text = "ShortPressed"
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
func runTimer() {
timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(updateTimer), userInfo: nil, repeats: true)
}
func updateTimer() {
seconds += 1 //This will decrement(count down)the seconds.
shortTimerLabel.text = "\(seconds)" //This will update the label.
}
}
imジェスチャーを使用して制御できるストップウォッチを作成しようとしています。短く押すと停止/開始し、長押しすると時間がリセットされます。
@ M4YDIEこの回答があなたに役立つ場合は、同じ回答を探している他の人に役立つように、それを受け入れ済みとマークしてください。 :)他の質問があれば、私に聞いてみてください! – Alex
Imは "#selector"の引数はObjective-Cに公開されていないインスタンスメソッド 'updateTimer()'を参照しています。 "違いがあれば、" SecondViewController "で作業しているはずです? – M4YDIE
Selector(( "updateTimer")に変更するとエラーを修正するように見えますが、ボタンを押すとクラッシュします – M4YDIE