Apple Developer Connection
Member Login Log In | Not a Member? Contact ADC

< 前ページ次ページ > 目次を隠す

コントローラとモデルの接続

XcodeでConverterControllerクラスの内側にConverterクラスのインスタンスを作成します。

  1. 「グループとファイル」サイドバーのClassesフォルダでConverterController.hをダブルクリックして、これをエディタウインドウで開きます。

  2. アウトレットが宣言されているコードの直後、閉じ括弧の前に、次の行を追加することにより、Converterオブジェクトへのポインタを宣言します。

    Converter *converter;

    クリックされると、「Convert」ボタンはconvert:メッセージをConverterControllerオブジェクトに送信します。ConverterControllerconvert:メソッドの定義を完成させて、convertCurrencyメッセージをConverterインスタンスに送信して変換を実行できるようにします。

  3. ConverterControllerConverterオブジェクトをインスタンス化できるように、Converter.hをインポートします。ConverterController.hの最初のimport文の下に、次の行を追加します。

    #import "Converter.h"
  4. ClassesグループでConverterController.mをダブルクリックして、エディタウインドウにこのファイルを開きます。

  5. リスト 5-1のハイライトされている行を、ConverterController.mに挿入します。



    リスト 5-1  ConverterController.mでのconvert:メソッドの定義

    #import "ConverterController.h"
    @implementation ConverterController
    - (IBAction)convert:(id)sender {
        float amount;
        converter = [[Converter alloc]init]; // 1
        [converter setSourceCurrencyAmount:[dollarField floatValue]]; // 2
        [converter setRate:[rateField floatValue]]; // 2
        amount =   [converter convertCurrency]; // 3
     
        [amountField setFloatValue:amount]; // 4
        [rateField selectText:self]; // 5
    }
    @end

convert:メソッドは次の処理を行います。

  1. Converterオブジェクトを初期化します。

  2. Converterクラスのメンバ変数を、rateFieldおよびdollarFieldテキストフィールドの値に設定します。

  3. convertCurrencyメッセージをconverterポインタによって参照されるオブジェクトに送信し、返された値を取得します。

  4. setFloatValue:を使って、返された値を「Amount in Other Currency」テキストフィールド(amountField)に書き出します。

  5. selectText:メッセージをレートのフィールドに送信します。その結果、フィールド内のテキストが選択されます。テキストがない場合は、テキストフィールドに挿入ポイントが置かれ、ユーザはほかの計算を開始できる状態になります。

convert:メソッドの各コード行は、浮動小数点変数の宣言を除き、メッセージです。メッセージ式の左辺の「単語」が、そのメッセージを受け取るオブジェクト(レシーバといいます)を識別します。これらのオブジェクトは、定義と接続を行ったアウトレットによって識別されます。レシーバの後に、送信側のオブジェクト(送信元といいます)がレシーバに実行させたいメソッドの名前が続きます。メッセージの結果として、多くの場合は値が返されます。上記の例では、ローカル変数amountに返される値が保持されます。



< 前ページ次ページ > 目次を隠す


Last updated: 2008-01-24




Did this document help you?
Yes: Tell us what works for you.

It’s good, but: Report typos, inaccuracies, and so forth.

It wasn’t helpful: Tell us what would have helped.
Get information on Apple products.
Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Copyright © 2007 Apple Inc.
All rights reserved. | Terms of use | Privacy Notice