dynamic方法名称(Objective-C)

我有几个方法,如下所示:

- (void)methodA; - (void)methodB; - (void)methodC; 

并根据一些条件使用它们。

现在我想dynamic地使用它们,我试过这个:

 NSString *methodName; if(_flag == A) methodName = @"methodA"; else if (_flag == b) methodName = @"methodB"; else methodName = @"methodC"; [self performSelector:@selector(methodName)]; 

但似乎错了。

那么如何根据不同的情况为给定的接收器使用dynamic方法名?

非常感谢!

用这个代替:

 [self performSelector:NSSelectorFromString(methodName)] 

你为什么不这样做?

 if(_flag == A) [self performSelector:@selector(methodA)]; else if (_flag == b) [self performSelector:@selector(methodB)]; else [self performSelector:@selector(methodC)]; 

由于@select器需要函数来调用,而不是NSString