コース: Objective-C 基本講座

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

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

オブジェクトの初期化をカスタマイズする

オブジェクトの初期化をカスタマイズする - Objective-Cのチュートリアル

コース: Objective-C 基本講座

オブジェクトの初期化をカスタマイズする

このレッスンでは オブジェクトの初期化を カスタマイズする方法を紹介します 構造体のメンバー同様 オブジェクトもそれぞれが 個別に自分のインスタンス変数を持ちます そしてこのオブジェクトが持つ インスタンス変数は オブジェクトの 作成時に整数や自数型なら0 ポインター型なら無理に 初期化される決まりです 基本的には 後から値を変更できるようにしておけば それで実用上は十分なのですが もしどうしてもこれ以外の値に 初期化したい場合は 初期化用メソッドをオーバーライド しなければいけません その時は知っておくべき取り決めが いくつかあるのでここで紹介しておきます まずイニシャライザーとも呼ばれる 初期化メソッドは インスタンス変数メソッドとして用意し 名前をinit から始める必要があります そして戻り値の型は どのクラスのインスタンスにも適合する インスタンスパイプ型とします ここにあげた イベントクラスの派生元である 変数オブジェクトでは 引数を何も持たないイニシャライザー init が提供されています インスタンス変数のアマウントを 内部で0 以外に初期化したいなら このメソッドを オーバーライドすればいいでしょう もし外部から指定した値で 初期化できるようにしたい場合は これとは別の引数付きイニシャライザーが 必要となります 実際にやってみましょう 命名規則に従いinit に続け withを続け 引数によってどのインスタンス変数が 初期化されるのかがわかるような 名前を追加します いずれも一文字目を大文字にします そしてコロンをつけて 仮引数を定義します これがインターフェース側に 記述する内容です インプリメンテーション側では 1 番最初に派生元の イニシャライザーを呼び出す必要があります これにはsuper キーワードを使い そこに init メッセージを送る形にします super は 現在メソッドを実行中のインスタンスを 派生元のインスタンスと 見立てるためのキーワードです このため super にメッセージを送ることは 派生元である NSObject のメソッドを 呼び出すことになります 戻された値を必ず self 変数に代入してください self は インスタンス変数自身を示すための 変数です self にメッセージを送ることで…

目次