2016-05-31 7 views
0

NSTimerの関数であるmyTestFunction(day)がintであったとします。Swift NSTimerが変数構文を渡す

NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: #selector(ViewController.myTestFunction(_:)), userInfo: day, repeats: true) 

Xcodeのコンパイラは、上記の構文の方に私を求めているが、私はFUNCでテストを入れたときに呼ばれるように表示されません。何か案は?

答えて

0

selectorパラメータで指定されたメソッドは、1つのパラメータ(NSTimer)でなければなりません。ドキュメンテーションの意味:タイマー自体が引数として渡されます。

func myTestFunction(timer : NSTimer) { 

他のパラメータはありませんが機能しません。

しかし、あなたは私がのUserInfoのアイデアを考え

let day = timer.userInfo as! Int 
+0

例えばuserInfo経由で渡された整数を取得することができますが:オプションあなたはNSTimerによって開始関数に変数(S)/辞書を渡すことができるようになりましたか? –

+0

はい、それは正しい方法ですが、 'testFunction(day)'のような直接のパラメータではありません。 'timer.userInfo'でuserInfoオブジェクトを取得します。私は答えを更新しました。 – vadian

+0

申し訳ありませんが厚くて、典型的なNSTimer構造(例えばNSTimer.scheduledTimerWithTimeInterval(0.1、..))を失うように思われるので、どこにタイマー間隔や繰り返しなどを教えてください。 –

関連する問題