如何按顺序获取对象中的成员类型?

时间:2012-08-31 04:15:41

标签: objective-c xcode reflection

  

可能重复:
  Objective C Introspection/Reflection

我正在寻找在对象头中声明的顺序获取对象的成员类型名称的方法。

例如,如果我得到这样的对象

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

当我在数组中获得{28,@"Jack",{@"basketball",@"Male",@"Master Degree"}}之类的数据时。 我需要成员类型来填充数据。

就像在java中有一个像getField()这样的函数来按顺序获取成员。

那么我可以使用任何方法吗?

感谢。

2 个答案:

答案 0 :(得分:1)

查看Objective-C Runtime Reference。它包括用于执行诸如获取类的ivar列表(class_copyIvarList())或获取对象实际ivars(object_getIndexedIvars())等功能的函数。它应该能够做你想要的事情。

答案 1 :(得分:0)

您可以按以下方式检查上述对象的类型:

   if( [person isKindOfClass:[Person class]])
    {
       //add your logic here
    }