ホーム

トップ
準備
Become An Xcoder

練習問題0
練習問題1
練習問題2
練習問題3
練習問題4
練習問題5
練習問題6
練習問題7
練習問題8
練習問題9
練習問題10
練習問題11
練習問題12
練習問題13
練習問題14
練習問題15

C言語補習1
C言語補習2
C言語補習3

推薦図書
ブックマーク

最後に

掲示板

Cocoa Docs

自作ソフトいろいろ




修正日: 09/02/23  

練習問題8  

 解答編


 では解答例です。ソースコードを自由に書けるようになってきて、課題に対する解答も千差万別、いろいろな書き方が出てくると思います。あくまでも私の例ですので、それぞれ好きなやり方を見つけてください。
 以下変更に関係のある部分だけ。

- (IBAction)changeBMI:(id)sender { bmi=[sender floatValue]; [self calcWeightAndSet]; } - (IBAction)changeHeight:(id)sender { height=[sender floatValue]; [self calcBMIAndSet]; } - (IBAction)changeWeight:(id)sender { weight=[sender floatValue]; [self calcBMIAndSet]; } - (void)calcWeightAndSet { weight=calculateWeight(height, bmi); [self setValues]; } - (void)calcBMIAndSet { bmi=calculateBMI(height, weight); [self setValues]; } - (void)setValues { [bmiField setFloatValue:bmi]; [bmiSlider setFloatValue:bmi]; [heightField setFloatValue:height]; [heightSlider setFloatValue:height]; [weightField setFloatValue:weight]; [weightSlider setFloatValue:weight]; }


 ソースコードを読めばわかると思うので、説明は省略します。手抜きじゃないですよ(笑)。当然Nibファイルやヘッダファイルも直す必要があります。
 実はこれだけで動かすと、起動直後の挙動が少し変になります。なぜかというと・・・自分で調べてなおしてみてください。宿題ということで。それを含めた解答サンプルはこちら。修正部分に理由を書いておきました。

 今回は割と簡単だったと思いますが、いかがでしょうか?次回はちょっと欲張ってキーバリューコーディングについての説明か、もしくは初期設定への保存方法について解説したいと思います。初期設定の方が先かな?