【问题标题】:Objective C class problem目标C类问题
【发布时间】:2009-11-29 20:45:05
【问题描述】:

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

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

编辑: 我想在开关盒中执行此操作。

【问题讨论】:

    标签: objective-c


    【解决方案1】:

    问题是没有 Class 这样的类(顺便说一句,这个不存在的类也不响应classNamed:)。

    不清楚您是要创建一个类还是获得一个引用到一个类。如果是后者,您需要函数NSClassFromString()。如果你想在运行时动态创建一个类,你需要使用Objective-C runtime functions来创建一个类,注册它并根据需要添加方法。

    【讨论】:

      【解决方案2】:

      没有名为“Class”的类。 “类”是指向类对象的指针的类型。不管怎样,NSBundle 中有一个classNamed: 方法,这可能就是你要找的:

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

      如果你知道类已经加载,你也可以这样获取:

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

      【讨论】:

      • [NSBundle mainBundle] 中的类什么时候不会被加载?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-04
      • 2015-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多