0

重複の可能性:
Objective C のイントロスペクション/リフレクション

オブジェクトヘッダーで宣言されたオブジェクトのメンバー型名を順番に取得する方法を探しています。

たとえば、このようなオブジェクトを取得した場合

@interface Person : NSObject {
  int age;
  NSString *name;
  PersonDetail *detail;
}

{28,@"Jack",{@"basketball",@"Male",@"Master Degree"}}配列のようにデータを取得すると。データを入力するには、メンバーのタイプが必要です。

メンバーを順番に取得する getField() のような関数がある Java のようなものです。

それで、私が使用できる方法はありますか?

感謝。

4

2 に答える 2

1

Objective-C ランタイム リファレンス をご覧ください。これには、クラスの ivar リストのclass_copyIvarList()取得 ( ) やオブジェクトの実際の ivar の取得( ) などを行うための関数が含まれていobject_getIndexedIvars()ます。あなたが望むようなことができるはずです。

于 2012-08-31T04:20:53.807 に答える
0

上記のオブジェクトのタイプは、次のように確認できます。

   if( [person isKindOfClass:[Person class]])
    {
       //add your logic here
    }
于 2012-08-31T04:23:46.973 に答える