Objective C用一个stringdynamic调用方法

我只是想知道是否有一种方法来调用一个方法,我用一个stringdynamic地build立方法的名称。

例如我有一个称为loaddata的方法

-(void)loadData; 

打电话给我,通常会这样称呼它

 [self loadData]; 

但我想能够dynamic调用一个string例如

 NSString *methodName = [[NSString alloc] initWithString:@"loadData"]; [self methodName]; 

这是一个愚蠢的例子,但我希望你明白我的观点。 我正在使用它来build立我的iPad应用程序的数据绑定类。 很难解释,但让它火,我需要解决如何调用一个string的方法。

有任何想法吗?

谢谢

你可以尝试类似的东西

 SEL s = NSSelectorFromString(selectorName); [anObject performSelector:s]; 

您可以使用objc_msgSend函数。 它有两个参数,接收者和select器发送给它:

 objc_msgSend(self, someSelector); 

您需要使用NSSelectorFromString将您的string转换为适当的select器:

 NSString *message = [self getSomeSelectorName]; objc_msgSend(self, message); 

该方法也需要可变数量的参数,因此您可以使用任意数量的参数发送消息。

 NSString *message = [self getSomeSelectorNameWithManyArguments]; objc_msgSend(self, message, arg1, arg2, arg3, arg4); 

你需要NSSelectorFromString