我知道如何在编译时使用@selector(MyMethodName:)
创建一个SEL
,但我想做的是从一个NSString
动态创建一个选择器。这有可能吗?
我能做什么:
SEL selector = @selector(doWork:);
[myobj respondsToSelector:selector];
我想做的是:(伪代码,这显然不起作用)
SEL selector = selectorFromString(@"doWork");
[myobj respondsToSelector:selector];
我一直在搜索Apple API文档,但没有找到一种不依赖于编译时@selector(myTarget:)
语法的方法。
发布于 2008-09-22 00:34:43
我不是Objective-C程序员,只是一个同情者,但也许你需要的是NSSelectorFromString。在Runtime Reference中明确提到,您可以使用它将字符串转换为选择器。
发布于 2014-02-26 13:11:17
我知道这个问题很久以前就得到了回答,但我还是想分享一下。这也可以使用sel_registerName
来完成。
问题中的示例代码可以重写为:
SEL selector = sel_registerName("doWork:");
[myobj respondsToSelector:selector];
https://stackoverflow.com/questions/112643
复制相似问题