2017-06-12 2 views
0

Neu hier Swift - Ich versuche, nach vordefinierten Zeitabständen einen einfachen Übergang zu erreichen. Aber aus irgendeinem Grund erkennt mein xcode nicht die Timer und gibt den Fehler "Timer-Modul hat kein Mitglied namens terminatedTimer". Ich konnte nirgendwo Hilfe finden.XCode erkennt den Timer nicht() - Swift 3

Code:

import UIKit 

class ViewController: UIViewController { 

    let emptystring = String() 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
     var time = Timer.scheduledTimer(timeInterval: 8.0, target: self, selector: #selector(changeview), userInfo: nil, repeats: false) 
    } 

    func changeview(){ 
     self.performSegueWithIdentifier("GoToMain", sender: self) 
    } 

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
     if (segue.identifier == "GoToMain"){ 
      let destination = (segue.destinationViewController as! UINavigationController).viewControllers[0] as! SecondView 
      destination.emptyString = emptystring 
     } 
     print("Segue Performed") 
    } 

} 

Picture auch meine gesamte Code zeigt, einschließlich der Fehler. Hinweis: Es ist nicht mein eigener Code. Ich folgte nur die Antwort auf Frage in folgendem Link:

Xcode Swift 3: Timer and Segue View Controller Error

Antwort

1

Timer ist eine Art Swift 3, aber vom Rest Ihrer Methode Signaturen zu urteilen, scheinen Sie Swift 2. Verwenden Sie NSTimer Verwendung werden in Swift 2.


Auch für zukünftige Referenz, zusätzlich zu den timeInterval Tippfehler (was Sie jetzt behoben haben), der dritte Parameter ist selector, nicht selecter.


Also, in Swift 2:

NSTimer.scheduledTimerWithTimeInterval(8.0, target: self, selector: #selector(changeview), userInfo: nil, repeats: false) 

Oder in Swift 3:

Timer.scheduledTimer(timeInterval: 8.0, target: self, selector: #selector(changeview), userInfo: nil, repeats: false) 
+0

Auch mit NSTimer wiederholt es den gleichen Fehler. p.s: Ich entschuldige mich extrem für die dummen Fehler –

+0

@ZairaZafar Siehe Swift 2 und Swift 3 Versionen in überarbeiteter Antwort oben. Beachten Sie, wenn Sie Probleme beim Ausschneiden und Einfügen von Code in Stack Overflow in der Zukunft haben, kommentieren Sie den eingefügten Code und versuchen Sie es selbst eingeben und verlassen Sie sich auf "Code Completion", um die richtige Syntax, Etiketten, etc. – Rob

+0

Vielen Dank so sehr! Das hilft! –

1

Sie den ersten Parameter als timerInterval erklärt haben, aber es sollte timeInterval stattdessen sein.

So ändern:

var time = Timer.scheduledTimer(timerInterval: 8.0, target: self, selecter: #selector(changeview), userInfo: nil, repeats: false 

An:

var time = Timer.scheduledTimer(timeInterval: 8.0, target: self, selector: #selector(changeview), userInfo: nil, repeats: false) 
+0

Wenn diese Frage das Ergebnis eines Tippfehlers ist, stimmt die Frage mit der Begründung schließen " Diese Frage wurde durch ein Problem verursacht, das nicht mehr reproduziert werden kann oder ** ein einfacher Tippfehler **. " anstatt zu antworten. – JAL

+0

Editiert es. Der Fehler besteht weiterhin. Wenn es sich um ein Argument des Arguments handelte, wäre ein falsches Argument hervorgehoben worden. P. s: obwohl ich danke Ihnen für das oben genannte Update –