我如何通过名称(方法名称为字符串)调用类方法?

时间:2011-03-03 06:55:08

标签: objective-c

在我的应用程序中,我遇到了一个问题,我需要使用方法名称(NSString)来调用特定的类方法。

对于前: - 有一个名为test1的类 - 有方法hello。


@interface test1 : NSObject{

}; -hello:(id)vals; @end

现在,我需要从这里调用/执行方法hello()。

假设(id)实例是类test1的实例。


-(void) RunFunction:(id)instance andFunctionName:(NSString*)fname andParamters:(id)params {

// need to do something like this - is it possible // if yes how do i acheive this. // sample java code starts. Method m = instance.getClass().getDeclaredMethod(fname,params); m.invoke(fname,params); // sample java code ends. }

谁可以帮助我。

1 个答案:

答案 0 :(得分:4)

您将使用-[NSObject performSelector:withObject:]。在这种情况下:

[instance performSelector:NSSelectorFromString(fname) withObject:params]