2016-06-22 16 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秒後にトリガされたとき、私のアプリはAppDelegateclass AppDelegate: UIResponder, UIApplicationDelegateからEXC_BAD_ACCESSとポインタポイントに死んでいます。

このようなパラメータでcheckをどのように呼び出すことができますか教えてください。 (completionは単なるintの場合、タイマーは動作しなかった!)

おかげ

答えて

-1

は、あなたがこのようなタイマーを作成することができます:私は `check`(ない` check1`呼び出したい

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

理由'sender'を' NSTimer'と呼んでいます)私はすでに 'check'を持っていました。私はそれを再利用したいのです。 – quanguyen

関連する問題