2016-07-20 10 views
0

私は、スピーディーな学習の一環としてstopWatchアプリケーションを作成しようとしています。 Javaから来て私は変数を初期化する方法を考え出すのに苦労しています。 ViewControllerの関連コード:viewDidLoad()で変数を初期化する方法Swift2

var timerRunning = false 

var timer: NSTimer = NSTimer() //first initialization I want to remove this initialization and leave it as nil 


override func viewDidLoad() { 
    super.viewDidLoad() 
// second initialization 
    timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: #selector(ViewController.timeChanged), userInfo: nil, repeats: true) 
} 

func timeChanged(){ 
    print("1 second") 
} 

私が直面しています問題は、私は冗長であり、nilに設定されていないことができると思いタイマー変数の初期化、二重です。私の目標は、いくつかの関数でtimer変数を使用し、button pressedイベントでそれを初期化することです。上記のアプローチは動作しますが、私はいくつかのよりクリーンな/正しい実装を探しています。 ありがとう

+1

'var timer:NSTimer = NSTimer()'を 'var timer:NSTimer! 'に変更することができます。この方法は、タイマーが常に値を持つべきであることを意味します。後でnilに設定する – Tj3n

答えて

1

タイマ変数をオプションで宣言し、最初はnilの値を持ち、後でボタンイベントでインスタンス化できます。

関連する問題