Swift 2.2 - 带可选完成处理程序选择器的NSTimer
问题描述:
我试图从定时器调用具有可选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, UIApplicationDelegate
在AppDelegate
。
你能告诉我怎么用这样的参数调用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'与'发件人'作为'NSTimer')是我已经'检查',我想重用它。 – quanguyen