前回、Class構造体のobjc_ivar_listを調査することで、そのクラスが持つインスタンス変数の名前を調べることを説明した。今回は、ここで得られた名前をもとにして、インスタンス変数の値にアクセスする方法を説明しよう。 動的なインスタンス変数へのアクセス Objective-Cでのインスタンス変数のアクセス権は、だいたいほかのメジャーな言語と同じであり、@private、@proteced、@publicという3つの可視性で定義することができる。@publicを指定すれば、「->」を使って、構造体と同じようにアクセスできる。 また、クラスを構造体とみなす、@defsという指示子も用意されている。これを使うと、クラスの宣言で@protectedや@privateを使っていても、どこからでもアクセスできてしまう。たとえば、NSWindowクラスに対して、次のように@defsを使って構造体