・プロパティ名からメソッド名への変換規則は、キー値コーディングのものと同じになる。
→キー値コーディングが分かるまではおいておく。
・メソッドが本当に実装されているかどうかのチェックは、実行時に行うというのが原則
・id型クラスのメソッドは宣言しなくともコンパイルは通ってしまう。
・翻って、ドット演算子で記述するとチェックが入る。静的な型チェックが入り、プログラムミスが減ると。
その例示は以下。インスタンス変数nameはプロパティ宣言がなされていない。
id person = [[Person alloc] init];
// id型のプロパティにアクセスする
// エラーになる
NSString* name = person.name;
// 存在しないプロパティにアクセスする
// エラーになる
NSString* lastName = ((Person*)person).lastName;
アクセサ記述は省略できたが、そのかわり増える記述もあるのだ(上のキャストがその例)。
0 件のコメント:
コメントを投稿