Objective-C

[Objective-C]NSObjectとは何か

More than 1 year has passed since last update.

Objective-Cを勉強していますが、さっぱり分かりません。
学習のためまとめてみたいと思います。

NSObjectとはなにか

ランタイムシステム(Runtime System)

オブジェクトの動的な振る舞いを助けるシステムです。
単にランタイムと呼ぶ場合もあります。
これはObjective-C用のオペレーティングシステムのようなもので、
オブジェクトの生成や、メモリ領域の管理、メッセージに対応するメソッドの探索などを行います。

NSObjectを通して利用する

ランタイムシステムの機能は、ルートクラスであるNSObjectから使用できます。
このクラスを継承しているすべてのクラスは、ランタイムシステムを利用できます。

cocoaとはなにか

CocoaはObjective-Cをコア言語とするオブジェクト指向フレームワークである。

wikipediaには、このようにありますね。
どうやら私はCocoaというフレームワークを利用するために、Objetive-Cという言語を利用しているようです。
cocoaはOPENSTEPを元に発展しているそうですが、OPENSTEPでNSObjectというクラスを使うようになったそうです。

isa

NSObjectには、isaというClass型のインスタンス変数があるそうです。
すべてのインスタンスオブジェクトは、isaによって自分が属しているクラスオブジェクトを参照することができます。
isaの値をサブクラスから変更するのはNG。

NSObjectのメソッド

詳細は省きますが、以上のような仕組みからNSObjectによってメソッドが提供されているんですね。

参考文献

詳解Objective-C 2.0
Coco - Wikipedia