2017-03-24 8 views
-3

こんにちは、私は迅速なプログラミングに新しいです。私はテキストフィールドの入力を取得し、それをintに変換し、そのintを使って作業したいと思います。ここに私のコードは次のとおりです。@vadianはコメントで指摘したようにTextFieldをVar Int(swift)に変換する

@IBOutlet weak var minutes: UITextField! 

@IBOutlet weak var seconds: UITextField! 

@IBOutlet weak var label_Timer: UILabel! 

@IBAction func btn_Timer(_ sender: UITextField) { 

    var min:Int = Int(minutes.text!) 
    var sec:Int = Int(seconds.text!) 

    timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(ViewController.timerRunning), userInfo: nil, repeats: true) 

} 

func timerRunning(){ 

    sec -= 1 

//operate on min and sec here 

} 
+0

OK、実際の質問は何ですか?投稿したコードにどのような問題がありますか? – rmaddy

+0

ヒント:カッコのペアは閉じた部屋のようです。そのスコープ内の宣言された変数(* room *)は外部には表示されません。 – vadian

+0

分と秒(UItextField)をint変数に変換したいので、func timerRunningで操作を行うことができます –

答えて

1

、あなたは彼らがtimerRunningメソッドからアクセスできるように、プロパティとしてminsecを宣言する必要があります。

はまた、私はあなたが安全にUITextFieldtext値とInt変換結果をアンラップするオペレータ??を合体nilをを利用することが示唆されました。

@IBOutlet weak var minutes: UITextField! 

@IBOutlet weak var seconds: UITextField! 

@IBOutlet weak var label_Timer: UILabel! 

var min = 0 
var sec = 0 

@IBAction func btn_Timer(_ sender: UITextField) { 

    min = Int(minutes.text ?? "") ?? 0 
    sec = Int(seconds.text ?? "") ?? 0 

    timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(ViewController.timerRunning), userInfo: nil, repeats: true) 

} 

func timerRunning(){ 

    sec -= 1 

    //operate on min and sec here 

}