[O][Objective-C]allocメソッドとinitメソッドとそれらを簡単に書く方法をまとめてみる

Title 1
iPhoneアプリ開発のための勉強を再開したOlein編集長(@Olein_jp)です。

先日、記事にも書かせていただきましたこちらの本(参照:[O]なかなかしっくりきたObjective-C本を見つけたよ!)で学習を進めています。

時間がある時に何度も読みなおしたり、Xcodeをいじれる環境の時にはプログラムを走らせてみたりしながら、迷走を続けております。

そんな中で、オレイン的に理解するのに苦しんだ部分を記事にすることによって、自分のためのまとめにしようと思いまして、自分にわかりやすくまとめてみました。

allocメソッドって?

allocメソッドとは、クラスからインスタスを生成するメソッドらしく、クラスに対して実行するクラスメソッドのくくりに入るらしい。

Alloc

allocメソッドが実行されると、インスタンスを格納するためのメモリ領域を作って、生成されたインスタンスを指し示すポインタを戻してきます。

そして、そこに格納されるインスタンス変数の値は、基本データ型(init A=10;とかで宣言するやつ)の場合は「0」を、オブジェクト型(NSDate *date;とかで宣言するやつ)の場合は「nil」を返してきます。

例えば、NSDateクラスのインスタンスを生成して、変数todayに格納するにはこうするらしい。

Alloc1

initメソッドって?

基本的にインスタンスは初期化が必要らしく、その初期化を行う代表的なメソッドがinitメソッドらしい。

Init

これら全てをまとめると、NSDateクラスの変数todayを宣言して、インスタンスを生成し、現在時刻を管理するように初期化する処理のながれらしい。

Init2 1

これらを続けて実行するには

メソッドがオブジェクトを返す場合、「[]」を入れ子にすることにより、複数続けて実行することができるらしい。しょうするに、複数行にまたがって書いていた処理を短くできるということだね。

Method1

先ほどの処理をこんな風に書くことが出来るらしいぞ!

Method2

まとめ

と、こんな具合で書いてみましたが、書くために何度も本を読み返したりするからとても理解が深まる実感があります。

が、

この記事を読んでいる皆様が、同じように理解が深まるように書けているかどうかというと、ぶっちゃけ書けていないのがこちらの記事になります。

ですが、たまに理解に苦しむ部分はこうやって記事にしてみることによって、勝手ながら自分の理解が深まるので、たまにはやってみたいと思います。