相关疑难解决方法(0)

performSelector可能导致泄漏,因为其选择器未知

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)

为什么我会收到此警告?我理解编译器无法检查选择器是否存在,但为什么会导致泄漏?我怎样才能更改我的代码,以便我不再收到此警告?

memory-leaks objective-c ios automatic-ref-counting

1251
推荐指数
15
解决办法
18万
查看次数

Objective C使用字符串动态调用方法

我只是想知道是否有办法调用一个方法,我用一个字符串动态建立方法的名称.

例如,我有一个名为loaddata的方法

-(void)loadData;
Run Code Online (Sandbox Code Playgroud)

打电话给我,我通常称之为

[self loadData];
Run Code Online (Sandbox Code Playgroud)

但我希望能够用字符串动态调用它,例如

NSString *methodName = [[NSString alloc] initWithString:@"loadData"];
[self methodName];
Run Code Online (Sandbox Code Playgroud)

这是一个愚蠢的例子,但我希望你明白我的观点.我正在使用它来为我为我的IPad应用程序设置的数据绑定类.很难解释,但要解决它我需要弄清楚如何用字符串调用方法.

有任何想法吗?

谢谢

iphone methods messaging dynamic objective-c

72
推荐指数
2
解决办法
3万
查看次数