2012年10月11日木曜日

declared property 小話

ドット構文とメソッド呼び出しの等価を考えた時、
・プロパティ名からメソッド名への変換規則は、キー値コーディングのものと同じになる。
→キー値コーディングが分かるまではおいておく。

・メソッドが本当に実装されているかどうかのチェックは、実行時に行うというのが原則
・id型クラスのメソッドは宣言しなくともコンパイルは通ってしまう。
・翻って、ドット演算子で記述するとチェックが入る。静的な型チェックが入り、プログラムミスが減ると。
 その例示は以下。インスタンス変数nameはプロパティ宣言がなされていない

id person = [[Person alloc] init];

// id型のプロパティにアクセスする
// エラーになる
NSString* name = person.name;

// 存在しないプロパティにアクセスする
// エラーになる
NSString* lastName = ((Person*)person).lastName;

 アクセサ記述は省略できたが、そのかわり増える記述もあるのだ(上のキャストがその例)。

0 件のコメント:

コメントを投稿