プログラマ行進曲第二章

主にソフトウェア関連の技術をネタにした記事を執筆するためのブログ

『Cocoa Programming For Mac OS X - Third Edition』 学習日記 その3

前回の学習した範囲をもう一度読み直し、前回の記事では足りないと思われる所があったので、備忘録として書き残しておきます。

その前に一応、学習している本の紹介を。

Cocoa® Programming for Mac® OS X

Cocoa® Programming for Mac® OS X

前回は上の本のp27〜p28で学んだことを書きました。今回はその補足です。

【新たに確認したこと】

  1. 「awakeFromNibメソッドをオーバーライドする」という前回の表現は不適切かもしれない。
  2. 「アプリケーション起動直後」かつ「イベント発生の前」に、全てのオブジェクトは自動的に"awakeFromNib"メッセージを送る。
  3. 本を読んでいる限りでは、awakeFromNibメソッドがNSObjectクラス等で実装されているかどうかといったことについては書かれていない。単に「アプリケーションが起動したら全オブジェクトがawakeFromNibメッセージを送る → テキストフィールドの値を初期化(initialize)したいならawakeFromNibメソッドを実装すること」としか書かれていない(と思われる)。
  4. awakeFromNibは自動的に呼び出される(it gets called automatically)から、呼び出す(call)必要はない。アプリケーションを起動して実行すれば良いだけ。
  5. Cocoaでは、awakeFromNibのように、自動的に呼び出されるものがたくさんある。

こんなところでしょうか。多分ここで出た疑問点のいくつかは本を読んでいくうちに解決するものもあるとは思います。

…それにしてもawakeFromNibのことだけなのに、分量多くなってしまった…

(追記)
実際にp29に書かれているコードを自分で書いてみてコンパイル→実行してみて思ったけど、やっぱりawakeFromNibメソッドはNSObjectクラスとかに定義されているんじゃないかなと思った。Javaでいうinterfaceのメソッドみたいに、実装が全くない状態でawakeFromNibメソッドが定義されているんじゃなかろうかね。誰か知っている方がいましたら、コメントに書いてもらえると嬉しいです。