具有名称的属性的Objective-C类

时间:2014-07-31 15:21:17

标签: objective-c

在Objective-C中,我怎样才能实现这样的目标:

Class propertyClass = [self classForPropertyWithName:@"a_property"];

3 个答案:

答案 0 :(得分:1)

所以你可以把它分成两步。

  1. 按名称获取物业(通过-valueForKey:
  2. 获取该属性的类(通过-class
  3. 这样的事情可能(请注意,对于非对象类型,这将失败):

    Class propertyClass = [[self valueForKey:@"a_property"] class];
    

答案 1 :(得分:1)

您应该使用以下方法获取名为“key”的属性对象:

- (id)valueForKey:(NSString *)key

即:

object = [valueForKey:@"propertyName"];

然后要获取类类型,只需调用可用于除基元之外的所有对象类型的类方法。

Class classType = [object class];

答案 2 :(得分:0)

我认为你要找的答案是here。代码:

Class c = NSClassFromString(@"RootViewController");

另一种选择:

id object = // Fetch here;
Class c = [object class];
NSString *className = NSStringFromClass(c);

文档:link