win*_*son 2 iphone null objective-c ios
我正在使用NSObject的performSelector方法来调用基于运行时确定的变量字符串的方法.
[self performSelector:NSSelectorFromString(methodName)];
Run Code Online (Sandbox Code Playgroud)
方法调用在循环内.但是,在某些循环迭代中,我不想做任何事情,methodName可能是零.似乎performSelector消息不将nil作为参数.当我不希望performSelector执行任何操作时,我该怎么办?
编辑:我应该更清楚.现在,methodName = @"doNothing"当我希望它为零时,我正在设置- 这就是名字所暗示的.我想知道是否有比这更优雅的解决方案,或只是放一个if块.我想我的问题是 -是否有一个空类型选择器?
Dav*_*ong 12
检查一下是不是nil?
SEL selector = NSSelectorFromString(methodName);
if (selector != nil) {
[self performSelector:selector];
}
Run Code Online (Sandbox Code Playgroud)
你可能正在寻找这个 -
if ([self respondsToSelector:NSSelectorFromString(methodName)]) {
[self performSelector:NSSelectorFromString(methodName)];
}
Run Code Online (Sandbox Code Playgroud)
if (methodName != nil) {
[self performSelector:NSSelectorFromString(methodName)];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4518 次 |
| 最近记录: |