タグ

2011年8月1日のブックマーク (1件)

  • 【コラム】ダイナミックObjective-C (19) メソッドとは何か(2) - メソッドを取得する | エンタープライズ | マイコミジャーナル

    メソッドのための、ランタイム調査第2回目。今回は、クラスからメソッド情報を取り出す方法を説明しよう。 クラスからメソッドを取得する クラスからメソッドの一覧を取得することが、動的なプログラミングの重要な要素として語られることは多い。Objective-Cでも、取得することはもちろんできるが、少しまどろっこしいところもある。これは、Objective-Cの特徴として、コード上ではメソッドそのものよりも、セレクタを使うことが多いためでもある。この辺りのことは、セレクタの回で説明することになるだろう。 なにはともあれ、メソッド一覧の取得方法を説明しよう。これまでにも何度か説明した、クラスを表すobjc_class構造体には、methodListsという名前のフィールドがある。ここに、メソッドの一覧がある。このフィールドは、objc_method_listという構造体の、ポインタのポインタになって