-1
簡単なeggTimerを作成しようとしていますが、タイマーがまったく機能しません(コンソールにタイマーを印刷すると、次のようになります)。< __NSCFTimer:0x60800016e4c0> )私が作成したcountdownLabelはまったく更新されません。私はタイマーのドキュメントに従おうとしたため何が間違っているのかわからない。Swift - カウントダウンタイマーが機能しないUILabel
は、ここで(これは三つのボタンsoftegg、mediumegg、hardeggの最初のためである)のコードです:あなたのコードで
import UIKit
var count = 0
class ViewController: UIViewController {
@IBOutlet var countDownLabel: UILabel!
@IBAction func softEggButton(_ sender: Any) {
var count = 360
soft()
}
func soft() {
var timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(ViewController.update), userInfo: nil, repeats: true)
print(timer)
}
func update() {
if(count > 0){
let minutes = String(count/60)
let seconds = String(count % 60)
countDownLabel.text = minutes + ":" + seconds
count -= 1
}
}
override func viewDidLoad() {
super.viewDidLoad()
}
私は、何らかの理由でボタンの関数でcount変数を宣言したときに、 "未解決の識別子の使用"と言っているupdate()関数でエラーが発生したので、グローバル変数を選択しました。グローバルカウント変数を追加すると、エラーは消えました。ありがとうbtw! – RjC
これは、関数またはメソッドで作成するインスタンスには、これらのインスタンス内でのみアクセスできるためです。通常、クラス内でcount変数を作成します。 classステートメントの下のどこかにvar count = 0を追加するだけです。 – Lenny1357