我正在尝试根据传递给方法的另一种类型创建一个类型的实例。我发现NSClassFromString
与字符串文字一起使用时效果很好,如
id instance = [[NSClassFromString(@"TheNameOfTheClassIWant") alloc] init];
但如果我用
之类的东西构造字符串NSString *inClassName = [[protoInstance class] description];
NSString *outClassName = [inClassName stringByAppendingFormat:@"IWant"];
id instance = [[NSClassFromString(outClassName) alloc] init];
instance
是nil
。 NSClassFromString
仅适用于文字吗?是否在编译时发生了让NSClassFromString
工作的事情?
答案 0 :(得分:0)
我使用此电话时从未遇到任何问题(已授予,我只需要几次)。
您:
outClassName
字母完整(区分大小写)?NSClassFromString' - just to ensure that
init`的输出未返回0(作为一个示例)答案 1 :(得分:0)
我唯一能想到的是[班级描述]是可疑的。使用NSStringFromClass确保你得到你想要的东西?
答案 2 :(得分:0)
检查该类是否包含在目标的构建阶段中。我遇到了同样的问题 - 由于无关的变化,该课程已经退出了构建阶段。