Learn Swift / viva Cocoa / viva Cocoa


Learn Swift / 第29章  Currency Converter Bindings 2


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

2016年2月4日

home  目次  前へ  次へ  mail


Converter クラス

 この章では、Currency Converter Bindings のモデルクラスとなる、Converter クラスを作成します。ナビゲータエリアで「Currency Converter Bindings」フォルダを選択して、「File」メニューから「New」→「File...」を選んでください。

 次のパネルで「Cocoa Class」を選んで、Next をクリックします。

 次のパネルで Class を「Converter」とし、Subclss of: で「NSObject」を選び、Language: で「Swift」を選びます。

 次のパネルでは、そのまま「Create」をクリックしてください。

 ナビゲータエリアに Converter.swift が追加されます。追加された Converter.swift を選択すると、エディタエリアに Converter.swift のコードが表示されます。


Converter.swift

 Converter.swift に、次のリストのコードを記述してください。太字部分が追加するコードです。なお冒頭のコメント部分は省略しています。

    import Cocoa

class Converter: NSObject {
    
    dynamic var exchangeRate:Double = 0.0
    dynamic var dollarsToConvert:Double = 0.0
    func amountInOtherCurrency() ->Double {
        return exchangeRate * dollarsToConvert
    }
    
    override class func keyPathsForValuesAffectingValueForKey(key: String) -> Set<String> {
        if key == "amountInOtherCurrency" {
            return Set<String>(arrayLiteral: "exchangeRate", "dollarsToConvert")
        } else {
            return super.keyPathsForValuesAffectingValueForKey(key)
        }
    }
    
}

このコードの中には、「exchangeRate」「dollarsToConvert」「amountInOtherCurrency」などの、長いプロパティ名やメソッド名が登場しています。これらのプロパティ名やメソッド名は、コピー & ペーストして記述することをお勧めします。うっかり間違うと、アプリケーションが、正しく動作しません。


Converter オブジェクト

 ライブラリエリアから「Object」を、ドキュメントアウトラインへドラッグ & ドロップしてください。

 ドキュメントアウトラインで「Object」を選択し、プロジェクト画面の右上のインスペクタエリアで、左からの三番目のアイデンティティインスペクタ (Identity inspector) を選びます。そして、Class で「Converter」を選んでください。ドキュメントアウトラインの「Object」が、「Converter」に変わります。

 これで、ストーリーボードにモデルオブジェクトが追加されました。これまでは、コントローラクラスにコードを記述することによって、コントローラがモデルオブジェクトを認識できるようにしていました。しかしここでは、コントローラにコードを記述するのではなく、コントローラとモデルをドラッグ & ドロップで接続することによって、コントローラがモデルオブジェクトを認識するようにします。そのために、モデルオブジェクトをストーリボードに追加しました。


お疲れ様でした。

 次章では、コントローラオブジェクトを、ストーリーボードに追加します。


home  目次  前へ  次へ  mail


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