itsukichang

フロントエンドが得意なエンジニア.ダーツと旅行とギターが好き

型。

風呂あがって少し寝てしまいました。
気力で起き上がっての更新。
***********************************************
宣言について。

まず、「インスタンスオブジェクトのための変数型」について。
注意として,インスタンス変数と混合しないようにしましょう。

インスタンス変数はインスタンスが持っている変数。
ここで仕様するのは、クラスをインスタンス化したときにできるオブジェクトを格納する変数です。

クラス名のポインタという形式になります。
普段使うポインタを「変数の変数」と言い表すなら、これは「オブジェクトの変数」とでもいいましょうw
使い方は簡単です。
例えば、MyObjectクラスをobjectという変数に格納するなら、

MyObject* object;

こう書きます。
アスタリスクを忘れるとコンパイルの際にエラーがでるので注意してください。

次は「id型」について。
Objcにはid型という独特な型があります。
これは上記のオブジェクトの変数のための型です。
id型はすべてのオブジェクトに使える型です。

CocoaのすべてのクラスはNSObjectから継承されています。
このNSObjectはすべてのオブジェクトに共通するデータが含まれていて、これを表すための変数型がid型なのです。
つまり、全てのオブジェクトはid型の変数に代入することができるということになります。
ただ、これを乱用すると、その変数のクラスがいったいなんだったのか分かりにくくなってしまうんです。
それを避けたいときは、クラス名のポインタ型を使うことになります。これについては後ほど詳しく。


Objcの独特な型については以上です。次はまたまた特殊なnil値についてです。