cra*_*bus 5 iphone objective-c ios
如果一个类响应选择器,我正在寻找以动态方式检查的可能性.
例如,我在像"parse [CountryCode] Adress"这样的类中有一个严格的方法名称模式.
我尝试过这样的事情:
SEL selector = NSSelectorFromString([NSString stringWithFormat:@"parse%@Address", @"DE"]);
if ([CountryTraderDataParser respondsToSelector:@selector(selector)]) {
NSLog(@"responds to");
[CountryTraderDataParser selector];
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用.
使用硬编码线,[CountryTraderDataParser respondsToSelector:@selector(parseDEAddress:)]此示例工作正常.
是否有其他/更好的方法让这个例子起作用?
小智 15
该selector变量已经是一个选择(型SEL),所以你不应该使用@selector().
也,
[CountryTraderDataParser selector];
Run Code Online (Sandbox Code Playgroud)
除非有一个名为的方法,否则无效selector.如果您想要一个对象来执行基于变量选择器的方法,请使用-[NSObject performSelector:].
SEL selector = NSSelectorFromString([NSString stringWithFormat:@"parse%@Address", @"DE"]);
if ([CountryTraderDataParser respondsToSelector:selector]) {
NSLog(@"responds to");
[CountryTraderDataParser performSelector:selector];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6190 次 |
| 最近记录: |