动态方法名称(Objective-C)

Wan*_*ang 2 dynamic objective-c selector ios

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

- (void)methodA;
- (void)methodB;
- (void)methodC;
Run Code Online (Sandbox Code Playgroud)

并根据某些条件使用它们.

现在我想动态使用它们,我试过这个:

NSString *methodName;
if(_flag == A) methodName = @"methodA";
else if (_flag == b) methodName = @"methodB";
else methodName = @"methodC";

[self performSelector:@selector(methodName)];
Run Code Online (Sandbox Code Playgroud)

但似乎错了.

那么,根据不同的情况,我应该如何为给定的接收器使用动态方法名称?

非常感谢!

Apu*_*urv 5

请改用:

[self performSelector:NSSelectorFromString(methodName)]
Run Code Online (Sandbox Code Playgroud)