Gewusst wie: zurücksetzen von NSTimer? swift-code

So, ich bin momentan dabei eine app/Spiel, wo Sie Tippen auf die entsprechende Taste, um ein Bild, bevor die Zeit abläuft und Sie verlieren. Sie erhalten 1 Sekunde, um Tippen Sie auf die Schaltfläche, und wählen Sie die rechts-Taste, dann wird der timer zurückgesetzt und ein neues Bild kommt. Ich habe Probleme beim zurücksetzen des Timers. Es feuert nach einer Sekunde, auch nachdem ich versuchen, es zurücksetzen. Hier ist der code:

loadPicture() läuft viewDidLoad()

func loadPicture() {
    //check if repeat picture
    secondInt = randomInt
    randomInt = Int(arc4random_uniform(24))
    if secondInt != randomInt {
        pictureName = String(self.PicList[randomInt])
        image = UIImage(named: pictureName)
        self.picture.image = image
        timer.invalidate()
        resetTimer()

    }
    else{
        loadPicture()
    }
}

und hier ist der resetTimer () - Methode:

func resetTimer(){
        timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: Selector("gameOverTimer"), userInfo: nil, repeats: false)

}

Denke ich, kann es etwas damit zu tun haben NSRunloops? Ich bin mir nicht sicher. Ich weiß gar nicht, was für ein NSRunloop ist um ehrlich zu sein.

  • Ich bin nicht sicher, warum Sie Ihre timer wird ausgelöst, nachdem Sie es ungültig ist, aber Sie haben einen Fehler in der Rekursion, der überprüft, ob Duplikate - Sie überschreiben randomInt so dass auf der rekursive Aufruf loadPicture Sie effektiv überprüfen, ob diese zufällige Zahl ist die gleiche wie die Vorherige Zufallszahl, nicht, ob diese zufällige Zahl ist die gleiche wie das Vorherige Bild angezeigt wurde
  • in loadPicture() vor resetTimer() Zeile schreiben timer = null . . .
  • Nur stellen Sie sicher, Sie sind die Schaffung der timer im selben thread? zweitens haben Sie versucht, die Erhöhung der Zeit, um in sagen wir 5 Sekunden?
  • Paulw11, gibt Es keine Fehler. Die randomInt ist der index des Bildes in das array. Wenn die int ist das gleiche, das Bild ist das gleiche zu.
  • iHart, das hat nicht funktioniert 🙁
  • nshebbar, ja und ja

InformationsquelleAutor LuKenneth | 2015-07-29
Schreibe einen Kommentar