目标C类问题

时间:2009-11-29 20:45:05

标签: objective-c

我想以这种方式创建一个Class对象: 类c = [Class classNamed:[NSString stringWithFormat:@“%sview”,[_ shapeClass name]]];

我的问题是这个错误消息:“错误:'Class'之前的预期表达式”。 你怎么看?有什么问题?谢谢你的回复。

编辑: 我想在交换机箱中这样做。

2 个答案:

答案 0 :(得分:2)

问题在于没有类这样的类(作为旁注,这个不存在的类也不响应classNamed:)。

目前尚不清楚是否要创建类或获取引用到类。如果是后者,则需要函数NSClassFromString()。如果要在运行时动态创建类,则需要使用Objective-C runtime functions创建类,注册它并根据需要添加方法。

答案 1 :(得分:0)

没有名为“Class”的类。 “Class”是指向类对象的指针的类型。无论如何,classNamed:中有一个NSBundle方法,可能就是您要找的内容:

Class c = [[NSBundle mainBundle] classNamed:[NSString stringWithFormat:@"%sview", [_shapeClass name]]];

如果你知道这个类已经加载了,你也可以这样得到它:

Class c = NSClassFromString([NSString stringWithFormat:@"%sview", [_shapeClass name]]);