ARC编译器收到以下警告:
"performSelector may cause a leak because its selector is unknown".
Run Code Online (Sandbox Code Playgroud)
这是我正在做的事情:
[_controller performSelector:NSSelectorFromString(@"someMethod")];
Run Code Online (Sandbox Code Playgroud)
为什么我会收到此警告?我理解编译器无法检查选择器是否存在,但为什么会导致泄漏?我怎样才能更改我的代码,以便我不再收到此警告?
我有几种方法,如下所示:
- (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)
但似乎错了.
那么,根据不同的情况,我应该如何为给定的接收器使用动态方法名称?
非常感谢!