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