2015-11-08 2 views
0

Я закодировал свой таймер с мыслью, что, когда мой таймер достигает 10, он останавливается. Но почему-то это не так.Таймер не останавливается, когда предполагается Swift 2

import Foundation 
import UIKit 

class SinglePlayer: UIViewController { 
    var timerCount = 0.0 
    @IBOutlet weak var timer: UILabel! 
    var timerVar = NSTimer() 

    func isCounting() { 
     timerCount += 0.1 
     timer.text = "\(timerCount)" 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     if timerCount <= 10.0{ 
      timerVar = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: "isCounting", userInfo: nil, repeats:true) 
     } else { 
      timerVar.invalidate() 
     } 
    } 
} 
+0

Помимо решения поставить проверку условия в 'isCounting()' функция Я подозреваю, что вы никогда не увидите полное приращения таймера, когда таймер запускается, что в ближайшее время в 'viewDidLoad()' – vadian

ответ

0

Вам нужно поставить условие в функции обратного вызова, а не на viewDidLoad, который только раз на нагрузке.

func isCounting() { 
    timerCount += 0.1 
    timer.text = "\(timerCount)" 

    if timerCount >= 10.0 { 
     timerVar.invalidate() 
    } 
} 
+0

Thx так сильно, что я действительно ценю, что это сработало сразу – Noja

+0

no prob, когда вы найдете решение своего вопроса, вы отмечаете его как принятый ответ. http://stackoverflow.com/help/someone-answers – CodetrixStudio

+0

и вы знаете, как сделать .99999999 уйти? – Noja

Смежные вопросы