ホーム

トップ
準備
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

自作ソフトいろいろ




修正日: 07/07/07  

練習問題7  

 ヒント


 ヒントはウィンドウ上のオブジェクトから受け取るアクションについてです。練習問題5で扱ったアクションの例を見てみましょう。

- (IBAction)calcBMI:(id)sender { [bmiField setFloatValue: calculateBMI([heightField floatValue], [weightField floatValue])]; }


 これは「BMIを計算せよ」というメソッドです。身長と体重をテキストフィールドから取り出してBMIを計算し、結果をテキストフィールドにセットしています。このメソッドの返り値「IBAction」は「void」つまり返り値は無し、を表しているということは「Become An Xcoder」で学びました。ではこのメソッドの引き数「sender」とはなんでしょうか?
 これは実は「このアクションを呼び出したオブジェクト」です。その名の通り「メッセージのsender(送った人)」ということです。ボタンを押して何かを実行しようとした場合はそのNSButtonオブジェクト、このcalcBMI:アクションであれば変更された(体重か身長の)テキストフィールドです。

 ちなみにこのsenderの型「id」というのは「NSObjectかそのサブクラスの何かのオブジェクトへのポインタ」という型です。つまり「NSButton *」でも「NSTextField *」でもなんでも「id」で表すことができます(「id *」では無いことに注意してください。idと書いた時点で既に、何かのオブジェクト「へのポインタ」を意味します)。

 練習問題7はこのsenderをうまく使ってあげないとクリアできません。よく考えてみてください。