Learn Swift / viva Cocoa / viva Cocoa


Learn Swift / 第26章  Currency Converter 7


このコーナーでは、Swift による、Mac OS X アプリケーションの作成方法を、説明しています。

2016年2月2日

home  目次  前へ  次へ  mail


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 にアイコンを設定します。


home  目次  前へ  次へ  mail


無断転載禁止
Copyright 2016. vivacocoa.jp All right reserved.