NSClassFromString适用于字符串文字,对构造的字符串返回nil

时间:2010-10-08 16:11:26

标签: objective-c

我正在尝试根据传递给方法的另一种类型创建一个类型的实例。我发现NSClassFromString与字符串文字一起使用时效果很好,如

id instance = [[NSClassFromString(@"TheNameOfTheClassIWant") alloc] init];

但如果我用

之类的东西构造字符串
NSString *inClassName = [[protoInstance class] description];
NSString *outClassName = [inClassName stringByAppendingFormat:@"IWant"];
id instance = [[NSClassFromString(outClassName) alloc] init];

instancenilNSClassFromString仅适用于文字吗?是否在编译时发生了让NSClassFromString工作的事情?

3 个答案:

答案 0 :(得分:0)

我使用此电话时从未遇到任何问题(已授予,我只需要几次)。

您:

  • 确认outClassName字母完整(区分大小写)?
  • 验证捆绑/类已加载?你能用标准方法分配/初始化一个类吗?
  • 验证NSClassFromString' - just to ensure that init`的输出未返回0(作为一个示例)

答案 1 :(得分:0)

我唯一能想到的是[班级描述]是可疑的。使用NSStringFromClass确保你得到你想要的东西?

答案 2 :(得分:0)

检查该类是否包含在目标的构建阶段中。我遇到了同样的问题 - 由于无关的变化,该课程已经退出了构建阶段。