2016-06-22 67 views
-1

我試圖從定時器調用具有可選CompletionHandler參數的函數。下面是我的代碼片段:Swift 2.2 - 帶可選完成處理程序選擇器的NSTimer

typealias CompletionHandler =() -> Void 

class ViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: #selector(ViewController.check(_:)), userInfo: nil, repeats: false) 
    } 

    func check(completion: CompletionHandler?) { 
     print("userinfo1") 
    } 

} 

當計時器後1.0秒觸發,我的應用程序是死與EXC_BAD_ACCESS和指針指向class AppDelegate: UIResponder, UIApplicationDelegateAppDelegate

你能告訴我怎麼用這樣的參數調用check函數嗎? (如果completion只是一個Int,計時器沒有工作!)

感謝

回答

-1

您可以創建這樣一個計時器:

NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: #selector(connectionTimeoutExpired(_:)), userInfo: nil, repeats: false) 

func connectionTimeoutExpired(sender: NSTimer) { 
     print("Connection Timeout Expired") 
     connectionTimer?.invalidate() 
     connectionTimer = nil 
    } 
+0

原因我想打電話給'check'(不'check1'與'發件人'作爲'NSTimer')是我已經'檢查',我想重用它。 – quanguyen