Learn Swift / 第26章 Currency Converter 7
このコーナーでは、Swift による、Mac OS X アプリケーションの作成方法を、説明しています。
convert メソッド
ViewController.swift の、convert メソッドに、次のリストのコードを、追加してください。太字部分が、追加するコードです。
@IBAction func convert(sender: AnyObject) { let converter = Converter() if let val = Float(rateField.stringValue){ converter.rate = val } else { converter.rate = 0.0 } if let val = Float(dollarField.stringValue) { converter.sourceCurrencyAmount = val } else { converter.sourceCurrencyAmount = 0.0 } let amount = converter.converterCurrency() amountField.stringValue = String(amount) rateField.selectText(self) }コードについて、ざっと説明しますが、詳しくは、当サイトの第5章から第16章を参考にしてください。
- let converter = Converter()
- let は定数を定義します。converter はその定数の名前です。定義とは、プログラムに対して、これが何であるかを知らせる行為です。つまりここでは、converter が、定数であることをプログラムに知らせています。Converter() では、Converter クラスのインスタンスを作成しています。Swift では、アルフェベットの大文字と小文字は区別されます。converter と Converter は違うものです。そして「=」で、Converter クラスのインスタンスを、converter 定数に代入しています。Swift では、「=」は、イコールという意味ではなく、右辺の値を、左辺に設定するという意味です。
- if let val = Float(rateField.stringValue)
- if は、条件分岐を定義します。Float() は、文字列などの値を、浮動小数点数に変換します。rateField.stringValue は、rateField という名前でアウトレット接続したテキストフィールドの文字列のことを表しています。ここでは、「もし、定数 val に、rateField の浮動小数点数が設定されたら」という意味になります。
- { converter.rate = val }
- 上記の条件が、満たされた場合の処理が、記述されています。ここでは、Conveter クラスの、converter インスタンスの、rate プロパティに、定数 val の値を設定しています。
- else
- 上記の条件が満たされなかった場合の処理を、else 以降に記述します。
- { converter.rate = 0.0 }
- 条件が満たされなかった場合は、Conveter クラスの、converter インスタンスの、rate プロパティに、0.0 という値が設定されます。
- if let val = Float(dollarField.stringValue)
- if は、条件分岐を定義します。Float() は、文字列などの値を、浮動小数点数に変換します。dollarField.stringValue は、dollarField テキストフィールドの文字列を表しています。ここでは、「もし、定数 val に、dollarField の浮動小数点数が設定されたら」という意味になります。ここでは、val という定数が二度定義されていることに注意してください。通常、同じ名前の定数を、重複して定義することはできません。しかし、それぞれの val 定数は、それぞれの if 文の中でのみ有効です。したがって、ここでは、同じ名前を定義することが、可能になっています。
- { converter.sourceCurrencyAmount = val }
- 上記の条件が、満たされた場合の処理が、記述されています。ここでは、Conveter クラスの、converter インスタンスの、sourceCurrencyAmount プロパティに、定数 val の値を設定しています。
- else
- 上記の条件が満たされなかった場合の処理を、else 以降に記述します。
- { converter.sourceCurrencyAmount = 0.0 }
- 条件が満たされなかった場合は、Conveter クラスの、converter インスタンスの、sourceCurrencyAmount プロパティに、0.0 という値が設定されます。
- let amount = converter.converterCurrency()
- 定数 amount を定義して、Conveter クラスの、converter インスタンスの、converterCurency() メソッドを実行して得られた値を、定数 amount に設定しています。
- amountField.stringValue = String(amount)
- String() は、整数や実数の値を文字列に変換します。ここでは、amountField テキストフィールドの文字列に、amount 定数の値を、文字列に変換して、設定しています。
- rateField.selectText(self)
- rateField テキストフィールドの文字列を選択しています。これによって、rateField テキストフィールドに、カーソルが表示 (移動) されます。
Currency Converter の実行
Currency Converter を実行してください。Exchange Rate Per $1 に「120」、Dollar to Convert に「100」と入力して、Button をクリックすると、Amount in Other Currency に、「12000.0」と表示されます。
お疲れ様でした。
次章では、Currency Converter にアイコンを設定します。
無断転載禁止 Copyright 2016. vivacocoa.jp All right reserved.