2016-12-25 12 views
0

私は6つのテキストフィールドをボタンのプッシュで文字列に連結して(順番に)、その文字列をIntに変換します。 文字列をIntに変換する方法を知っています。textField.textを安全にアンラップしてプロパティに安全に保存する方法

私が悩んでいるのは、オプションのIBOutletsの下にプロパティを作成し、オプションでラップされていないtextfield.textをプロパティに格納する方法です。

私が試してみましたが

@IBOutlet weak var firstTextField: UITextField! 

このプロパティ後、私は

func functionName(textField: UITextField) { 
    if textField == firstTextField { 
     if let text = textField.text { 
     firstTextFieldString = text 
    } 
} 
} 

答えて

1

言う機能で、その後

あるIBOutlet

var firstTextFieldString: String? 

ですの210プロパティはオプションの文字列(String?)で、同じタイプの他の変数に割り当てることができます。あなたのコンセントとプロパティが正しいように見えます。

textプロパティをfirstTextFieldStringプロパティに直接割り当てることができます。

firstTextFieldString = firstTextField.text 

あなたはボタンが押されたときに呼び出される関数をしたい場合は、@IBActionと機能をマークし、ストーリーボードにそれをフックすることができます。

@IBAction func functionName(textField: UITextField) { 
    // your function here 
} 

お店など、すべてのテキストフィールドを参照する場合は、直接、各フィールドのtextプロパティにアクセスする関数を記述し、それらを組み合わせることができるはずです。これは、テキストフィールドに値がない場合に何をしたいかによって決まります。それらを空の文字列として扱う場合は、すべてを連結する前にそれらをデフォルト値でアンラップすることができます。

@IBAction func functionName(textField: UITextField) { 
    let first = firstTextField.text ?? "" 
    let second = secondTextField.text ?? "" 
    let third = thirdTextField.text ?? "" 
    // etc... 
    let result = first + second + third + ... 
    // etc... 
} 
関連する問題