定時器作用域問題我一直堅持把它放到正確的範圍內。我確定它的東西超級簡單,但我用頭撞牆。我發現任何答案是在早期版本的迅速,所以即時通訊努力瞭解如何解決這個#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.
}
}
即時通訊嘗試創建一個可以使用手勢進行控制的秒錶。短按標籤上的停止/開始,長按重置時間。
@ M4YDIE,如果此答案對您有幫助,請將其標記爲已接受,以便可以幫助其他人查找相同的答案。 :)如果您有任何其他問題,請隨時詢問我! – Alex
我仍然收到一個類似的錯誤,「#selector的參數是指實例方法'updateTimer()'沒有公開給Objective-C」我應該注意到,即時通訊工作在「SecondViewController」,如果這有什麼區別? – M4YDIE
更改爲選擇器((「updateTimer」))似乎修復了錯誤,但它在按下按鈕時崩潰 – M4YDIE