コース: Objective-C 基本講座

今すぐコースを受講しましょう

今すぐ登録して、23,200件以上登録されている、業界エキスパート指導のコースを受講しましょう。

オブジェクトの属性を変更する

オブジェクトの属性を変更する - Objective-Cのチュートリアル

コース: Objective-C 基本講座

オブジェクトの属性を変更する

このレッスンではインスタンス変数を 外部から参照したり 設定したりする方法を学習してください インスタンス変数はそのままだと 外部からは触れないようになっています 変数を所有しているオブジェクト以外が インスタンス変数を参照したり 変更したりしたい場合は 次にあげる専用のメソッドを用意します このようなインスタンス変数を 触るためのメソッドをアクセサーと呼びます 細かく分類するなら 値を参照する側がgetter 値を設定する側がsetter です アクセサーには命名規則があり getter の名前には変数名を そのまま使いsetter の名前には set に続けて変数名の 先頭一文字を大文字化したものを使います 後は通常のメッセージ送信で 値を取り出したり設定したりします またアクセサーの 名称規則に従っていくなら 使う側はドットを使った略記が可能です ドット構文と呼ばれています 見た目に構造体のメンバーへのアクセス のように見えますがコンパイル時に メッセージ送信に変換されます インターフェース部のアクセサー自体も プロパティを使って略記が可能です これで先ほどの命名規則に従った アクセサーが自動的に生成されます インプリメンテーション部も シンセサイズを使って略記が可能です この際自動的に生成される アクセサーが扱ううべきインスタンス変数を 指定してやる必要があります シンセサイズ自体も省略可能です その場合はプロパティで指定された名前の 手前にアンダースコアを加えた インスタンス変数が 暗黙裡に宣言されることになります この場合メソッドでは アンダースコアアマウントを使うか セルフとアクセサーを使うようにします また派生先では アクセサー経由でしか触れなくなります 現在のObjectC では この形が一般的です プロパティの後ろにカッコをつけて read onlyと書くことで getter のみ生成させることもできます この場合ドット構文を含め setter の利用はエラーとなります このレッスンでは インスタンス変数を外部から参照したり 設定したりする方法を学習しました

目次