为什么NSClassFromString
会返回nil
?根据定义,它必须返回类名。我应该如何注意纠正这个问题?我需要从string实例化一个类,并使用创建的实例调用类中的方法。
我的代码是这样的:
id myclass = [[NSClassFromString(@"Class_from_String") alloc] init];
[myclass method_from_class];
但是method_from_class
函数不会被调用,控制也不会进入其中。而且我的代码是没有错误的。你知道如何在Objective-C中解决这个问题吗?
发布于 2011-02-16 20:05:47
如果尝试从静态库实例化一个类,则必须将"-ObjC“标志添加到"Other Linker Flags”生成设置中。
发布于 2013-01-23 02:47:31
如果这是对类的唯一引用,则可能没有链接到它。
我有一个工厂方法来实例化各种类型的子类。工厂有一个switch语句,它转到适当的子类,并分配和初始化它。我注意到除了类名之外,所有的alloc/init语句都是完全相同的。因此,我能够使用NSClassFromString()函数消除整个开关块。
我遇到了同样的问题--回报为零。这是因为这个类没有在程序的其他地方使用,所以它没有被链接,所以在运行时找不到它。
您可以通过包含以下语句来解决此问题:
[MyClass class];
这违背了我试图实现的全部目标,但这可能就是您需要的全部。
发布于 2011-07-16 07:22:01
您还需要确保您尝试实例化的类包含在项目中。如果是稍后添加的,则需要单击正在构建的Target旁边的复选框。
https://stackoverflow.com/questions/2227085
复制相似问题