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 。