2016-06-22 48 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