Objective c 对NSClassFromString()返回的类调用类方法

Objective c 对NSClassFromString()返回的类调用类方法,objective-c,foundation,class-method,Objective C,Foundation,Class Method,NSClassFromString(aClassName)返回名为aClassName的类的类对象。太好了 现在,我如何在该类对象上调用类方法?为了 Class moduleClass = NSClassFromString(aClassName); Xcode不允许我调用任何一个 AppModule* appModuleClass = moduleClass; [appModuleClass classMethod] // actually that's an objec

NSClassFromString(aClassName)
返回名为aClassName的类的类对象。太好了

现在,我如何在该类对象上调用类方法?为了

  Class moduleClass = NSClassFromString(aClassName);
Xcode不允许我调用任何一个

  AppModule* appModuleClass = moduleClass;
  [appModuleClass classMethod]     // actually that's an object instance...


我错过了什么?谢谢。

要调用类方法,请执行以下操作:

[NSClassFromString(aClassName) performSelector:@selector(classMethod)];
也许可以:

objc_msgSend(NSClassFromString(aClassName), @selector(classMethod));
你可以用

__typeof([AppModule class]) cls = NSClassFromString(@"aClassName");
if ( [cls respondsToSelector:@selector(classMethod)] ) {
    [cls classMethod];
}

它仍然在调用实例方法。我需要调用类方法。见1。我问题中的例子。好的,干杯!除了我需要使用非对象参数实际调用一个方法,我希望避免
NSInvocation
-是否有某种方法可以直接调用该方法..?请尝试以下操作:
objc_msgSend(NSClassFromString(aClassName),@selector(classMethod))确切地说,我最终使用了一些类似的方法,如所建议的,如果有3-4个参数,是否可以将参数发送到这些调用中?直接调用
moduleClass
上的选择器也不起作用-
[moduleClass classMethod]
?我只是问以下问题,因为没有问题:
Class cls=NSClassFromString(@“NSString”);NSString*s=[cls stringWithString:@“一个字符串”]@Rich好吧,它是Objective-C,所以它当然可以工作,但在编译时它会发出警告..我指的是编译和运行时。以上操作不会产生任何警告、错误,运行正常。尽管这段代码可能会回答这个问题,但提供关于它如何和/或为什么解决问题的附加上下文将提高答案的长期价值。
__typeof([AppModule class]) cls = NSClassFromString(@"aClassName");
if ( [cls respondsToSelector:@selector(classMethod)] ) {
    [cls classMethod];
}