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
,我想重新使用它。