2017-06-12 242 views
0

Swift的新功能 - 我試圖在預定義的時間失效後實現簡單的繼續操作。但由於某種原因,我的xcode不識別Timer,並給出錯誤「定時器模塊沒有名爲scheduledTimer的成員」。我無法在任何地方找到幫助。XCode無法識別Timer() - 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也顯示了我的整個代碼,包括錯誤。注意:這不是我自己的代碼。我只跟着回答問題,在下面的鏈接:

Xcode Swift 3: Timer and Segue View Controller Error

回答

1

Timer是斯威夫特3類型,但是從你的方法簽名的其餘部分來看,你似乎是用斯威夫特2.使用NSTimer在Swift 2中。


此外,爲了將來的參考,除了timeInterval錯字(您現在已經修復),第三個參數是selector,而不是selecter


因此,在斯威夫特2:

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

還是在斯威夫特3:

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

即使使用NSTimer,它也會重複出現相同的錯誤。 p.s:我對這個愚蠢的錯誤非常抱歉 –

+0

@ZairaZafar在上面的修訂答案中參見Swift 2和Swift 3的翻譯。請注意,如果您在切割和粘貼未來堆棧溢出時發現的代碼時遇到麻煩,請註釋掉粘貼的代碼,並嘗試自己輸入代碼並依靠「代碼補全」來獲得正確的語法,標籤等。 – Rob

+0

謝謝非常!這有幫助! –

1

你已經宣佈的第一個參數爲timerInterval但它應該是timeInterval代替。

因此改變:

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

要:

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

如果這個問題是一個錯字的結果,投票關閉問題與原因「這個問題是由於無法再現的問題或**簡單的印刷錯誤**造成的。「而不是回答。 – JAL

+0

編輯它。錯誤仍然存​​在。如果這是一個爭論問題,那麼就會突出錯誤的論點。 P.s:儘管感謝您的上述修復 –