0

可能的重复:
Objective C Introspection/Reflection

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

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

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

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

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

那么有什么我可以使用的方法吗?

谢谢。

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 回答