gpt4 book ai didi

iphone - 动态检查类是否通过 respondsToSelector : 响应选择器

转载 作者:可可西里 更新时间:2023-11-01 04:11:53 26 4
gpt4 key购买 nike

如果类响应选择器,我正在寻找以动态方式检查的可能性。

例如,我在类中有一个严格的方法名称模式,如“parse[CountryCode]Adress”。

我尝试过这样的事情:

SEL selector = NSSelectorFromString([NSString stringWithFormat:@"parse%@Address", @"DE"]);

if ([CountryTraderDataParser respondsToSelector:@selector(selector)]) {
NSLog(@"responds to");
[CountryTraderDataParser selector];
}

但这行不通。

使用硬编码行 [CountryTraderDataParser respondsToSelector:@selector(parseDEAddress:)] 这个例子工作正常。

是否有其他/更好的方法来让这个例子工作?

最佳答案

selector 变量已经是一个选择器(类型 SEL),所以你不应该使用 @selector()

此外,

[CountryTraderDataParser selector];

无效,除非有一个名为 selector 的方法。如果你想让一个对象执行一个基于变量选择器的方法,使用-[NSObject performSelector:]

SEL selector = NSSelectorFromString([NSString stringWithFormat:@"parse%@Address", @"DE"]);

if ([CountryTraderDataParser respondsToSelector:selector]) {
NSLog(@"responds to");
[CountryTraderDataParser performSelector:selector];
}

关于iphone - 动态检查类是否通过 respondsToSelector : 响应选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5935494/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com