【问题标题】:How to get the types of members in an object in order? [duplicate]如何按顺序获取对象中的成员类型? [复制]
【发布时间】:2012-08-31 04:15:41
【问题描述】:

可能重复:
Objective C Introspection/Reflection

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

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

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

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

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

那么有什么方法可以用吗?

谢谢。

【问题讨论】:

  • 会员类型是什么意思?
  • 它们就像“int”、“NSString”和“PersonDetail”之类的东西。

标签: objective-c xcode reflection


【解决方案1】:

看看Objective-C Runtime Reference。它包括诸如获取类的 ivar 列表 (class_copyIvarList()) 或获取对象的实际 ivar (object_getIndexedIvars()) 之类的功能。它应该能够做你想做的事情。

【讨论】:

  • 非常感谢!这正是我所需要的。
【解决方案2】:

您可以检查上述对象的类型如下:

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

【讨论】:

    猜你喜欢
    • 2020-02-01
    • 2019-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-12
    • 2013-11-09
    相关资源
    最近更新 更多