Objective-Cでのインスタンスの生成とイニシャライズの方法.
インスタンス、インスタンスと何度も出てきていますが、インスタンスとは何なんでしょうね。
簡潔に言うと、インスタンスとは、クラスを実体化したものです。イヌというクラスにはポチというインスタンスもあれば、タローというインスタンスもあります。今回はこのインスタンスをどのように作るかという話です。
インスタンスの生成
インスタンスを作るためにはクラスに”alloc”というメッセージを送らなければなりません。Objective-Cではインスタンスだけでなく、クラスにもメッセージを送れます。書き方は以下のようです。
「 [クラス名 alloc]; 」
これだけで一応インスタンスは生成されます。しかし、これはこのインスタンスに必要なメモリを確保しただけです。家をたてるのに、土地を買っただけのようなものです。
イニシャライズの方法
今度は家を立てないと行けませんね。どのような家にしましょう。このような、インスタンスの最初の設定を行うことを「イニシャライズ」と言い、そのためのメソッドを「イニシャライザ」と言います。
通常イニシャライザは”init”というメソッドを用います。クラスによってはそれ以外のイニシャライザを提供しているクラスもありますが、それらも”init…”と「init」から始まるようにメソッド名をつけるのが通例になっています。
前回の”initWithName”もその例です。この場合はイニシャライズの時に違う名前をインスタンスごとにセット出来るように、特別なイニシャライザを作りました。
「init」をもちいたイニシャライズは、先ほどの”alloc”の後に呼び出して、以下のように書きます。
「 [[クラス名 alloc] init]; 」
このようにイニシャライズを忘れることのないよう、インスタンスを生成したあとに、その作ったインスタンスへ直接イニシャライザを適用するのが一般的です。