我想以这种方式创建一个Class对象: 类c = [Class classNamed:[NSString stringWithFormat:@“%sview”,[_ shapeClass name]]];
我的问题是这个错误消息:“错误:'Class'之前的预期表达式”。 你怎么看?有什么问题?谢谢你的回复。
编辑: 我想在交换机箱中这样做。
答案 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]]);