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

时间:2016-06-22 11:00:36

标签: swift2 nstimer optional completionhandler

我正在尝试使用计时器中的可选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_BAD_ACCESS而指针指向class AppDelegate: UIResponder, UIApplicationDelegate中的AppDelegate

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

由于

1 个答案:

答案 0 :(得分:-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
    }