Objective-C 2.0をはじめる
現在のまとめ
- Objective-C 2.0のことをObjective-C++と表記することもあるみたい
- 宣言部と実装部に分かれている
- メソッド参照がメッセージ送信になっていて記述が独特
- 「#」で始まるコンパイルの前処理の指示を「プリプロセッサ命令」と呼ぶらしい
- NSObjectクラスがルートクラスとなる
- NSObjectクラスはFoundationフレームワークの中に用意されている
- id型の場合、「*」(アスタリスク)でポインタであることを明示する必要はないらしい。
- allocとinitはNSObjectに定義されている
- Foundationフレームワークは実行時に読み込み
- コンパイル実行に失敗するとファイルは作成されない
- 「 : スーパークラス名」の部分は、宣言部(@interface)で記述されていれば、実装部(@implementation)では省略してもOK
- オブジェクトでやり取りするために、int型変数をオブジェクト型にラップして渡すことが結構行われるらしい
- interfaceの引数を「仮引数」というらしい
- メソッドの宣言で型を省略するとid型とみなされる
- 実装部(implementation)ではスーパークラス、インスタンス変数は記述しない。宣言したメソッドの定義は必須
- オブジェクトの無効値はnil
- 関数呼び出しの方がメソッド呼び出しよりも比較的高速に動作するが、よほどでない限りはメソッド呼び出しでよい
- initメソッドはid型を返すらしい