「クラス」は、クラスの不透明な型と言われています。どういう意味ですか?クラスの種類ですか?
もう1つ、クラスは構造体へのポインターですか、それとも基本的に構造体ですか?
「クラス」は、クラスの不透明な型と言われています。どういう意味ですか?クラスの種類ですか?
もう1つ、クラスは構造体へのポインターですか、それとも基本的に構造体ですか?
タイプの変数は、Class
タイプの変数が任意のオブジェクトへのポインタを保持できるように、クラス オブジェクトへのid
ポインタを保持できます。クラスオブジェクトはオブジェクトです。type の変数がある場合、そのid
中にどんな種類のものがあるのか わかりません。と同じClass
です。あなたはそれがオブジェクトであることを知っています。この「不透明なタイプ」という用語をどこから入手したのかわかりません。
オブジェクトは、メモリ内に特定の方法で一緒に配置された一連のもので構成されているため、構造体であると言えます。しかし、オブジェクトの内部構造を気にするべきではありません。これは、ランタイムの実装の詳細です。Apple ランタイム ヘッダーに表示される 、 などの構造体は、objc_object
正確objc_class
にはオブジェクトそのものではありません。それらは、Apple ランタイム内のオブジェクトの「開始」の構造を表しています。ただし、オブジェクトには、インスタンス変数など、これらの構造体が記述するものを超えるものが含まれています。