id Objective-C では、オブジェクト識別子は id という異なるデータ型です。この型は、クラスに関係なくあらゆる種類のオブジェクトの一般的な型であり、クラスのインスタンスおよびクラス オブジェクト自体に使用できます。
id anObject;
ここまでは単純明快
メソッドの戻り値など、Objective-C のオブジェクト指向構造の場合、id はデフォルトのデータ型として int を置き換えます。(関数の戻り値など、厳密に C の構造の場合、int はデフォルトの型のままです。)
id についての話が int に取って代わるものを理解していませんか? 最後の括弧内の int はデフォルト値のままですか?
キーワード nil は null オブジェクト、値 0 の id として定義されます。id、nil、およびその他の Objective-C の基本型は、ヘッダー ファイル objc/objc.h で定義されます。
id は、オブジェクト データ構造へのポインターとして定義されます。
typedef struct objc_object {
Class isa;
} *id;
上記は obj-c 構文ではありません。それは何で、何を説明しているのでしょうか?
したがって、すべてのオブジェクトには、インスタンスであるクラスを示す isa 変数があります。Class 型自体がポインターとして定義されているため、次のようになります。
typedef struct objc_class *Class;
isa 変数は、しばしば「isa ポインター」と呼ばれます。</p>
この最後の段落も理解できませんでした。