首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >NSClassFromString返回nil

NSClassFromString返回nil
EN

Stack Overflow用户
提问于 2010-02-09 13:54:58
回答 5查看 29.1K关注 0票数 19

为什么NSClassFromString会返回nil?根据定义,它必须返回类名。我应该如何注意纠正这个问题?我需要从string实例化一个类,并使用创建的实例调用类中的方法。

我的代码是这样的:

id myclass = [[NSClassFromString(@"Class_from_String") alloc] init];
[myclass method_from_class];

但是method_from_class函数不会被调用,控制也不会进入其中。而且我的代码是没有错误的。你知道如何在Objective-C中解决这个问题吗?

EN

回答 5

Stack Overflow用户

发布于 2011-02-16 20:05:47

如果尝试从静态库实例化一个类,则必须将"-ObjC“标志添加到"Other Linker Flags”生成设置中。

票数 40
EN

Stack Overflow用户

发布于 2013-01-23 02:47:31

如果这是对类的唯一引用,则可能没有链接到它。

我有一个工厂方法来实例化各种类型的子类。工厂有一个switch语句,它转到适当的子类,并分配和初始化它。我注意到除了类名之外,所有的alloc/init语句都是完全相同的。因此,我能够使用NSClassFromString()函数消除整个开关块。

我遇到了同样的问题--回报为零。这是因为这个类没有在程序的其他地方使用,所以它没有被链接,所以在运行时找不到它。

您可以通过包含以下语句来解决此问题:

[MyClass class];

这违背了我试图实现的全部目标,但这可能就是您需要的全部。

票数 4
EN

Stack Overflow用户

发布于 2011-07-16 07:22:01

您还需要确保您尝试实例化的类包含在项目中。如果是稍后添加的,则需要单击正在构建的Target旁边的复选框。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2227085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档