Hoşgeldin. Soru sormak veya cevaplamak için hemen üye ol.
+2 oy
483 kez görüntülendi
ios development kategorisinde tarafından

Swift'de NSTimer'ı nasıl kullanacağız?

1 cevap

+1 oy
tarafından
 
En İyi Cevap

scheduledTimerWithTimeInterval methodu içerisindeki ilk değer timer'ın saniye cinsinden ateşlenme süresi
target:timer'ın ateşleyeceği methodun yer aldığı class, ("self" bize selector methodunun timer'ile aynı class'da yer aldığını gösteriyor)
selector: çağrılacak method
userinfo: methoda gönderilecek değer
repeat: methodun verilen süre aralağında tekrarlanmasını sağlayacak. (boolean değeri, "false" timer'ın bir kere ateşlenmesi, "true" timer'ın verilen aralıkla sürekli ateşlenmesi için)

eğer repeat:true ise timer hiç bir zaman durmayacaktır, timer'ı belli bir süre geçtikten sonra durdurmak için Invalidate etmemiz gerekir ki , aşağıdaki örnekte de görebileceğiniz üzere count değeri her defasında bir artırılmakta ve 9'dan fazla olduğunda "invalidate()" ile timer iptal edilmektedir.

import UIKit

class ViewController: UIViewController {

var count:Int = 0
var myTimer:NSTimer! = nil

override func viewDidLoad() {
    super.viewDidLoad()
    self.myTimer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "test:", userInfo: nil, repeats: true)
}


func test(timer:NSTimer){
    println(self.count)
    if self.count > 9 {
        self.myTimer.invalidate()
    }
    ++self.count
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
}
}
...