Swift2 Swift 2.2-带可选完成处理程序选择器的NSTimer

Swift2 Swift 2.2-带可选完成处理程序选择器的NSTimer,swift2,nstimer,optional,completionhandler,Swift2,Nstimer,Optional,Completionhandler,我试图从计时器中调用带有可选的CompletionHandler参数的函数。下面是我的代码片段: typealias CompletionHandler = () -> Void class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() NSTimer.scheduledTimerWithTimeInterval(1.0,

我试图从计时器中调用带有可选的
CompletionHandler
参数的函数。下面是我的代码片段:

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\u BAD\u访问
而死机,指针指向
AppDelegate
中的
类AppDelegate:UIResponder,uiapplicationelegate

你能告诉我如何用这样的参数调用
check
函数吗?(如果
completion
只是一个Int,那么计时器确实起作用了!)


谢谢

您可以创建如下计时器:

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
    }

我想调用
check
(而不是
check1
sender
作为
NSTimer
)的原因是我已经有了
check
,我想重新使用它。