首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用Objective-C在运行时动态创建选择器?

如何使用Objective-C在运行时动态创建选择器?
EN

Stack Overflow用户
提问于 2008-09-22 00:22:32
回答 2查看 48K关注 0票数 93

我知道如何在编译时使用@selector(MyMethodName:)创建一个SEL,但我想做的是从一个NSString动态创建一个选择器。这有可能吗?

我能做什么:

代码语言:javascript
复制
SEL selector = @selector(doWork:);
[myobj respondsToSelector:selector];

我想做的是:(伪代码,这显然不起作用)

代码语言:javascript
复制
SEL selector = selectorFromString(@"doWork");
[myobj respondsToSelector:selector];

我一直在搜索Apple API文档,但没有找到一种不依赖于编译时@selector(myTarget:)语法的方法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2008-09-22 00:34:43

我不是Objective-C程序员,只是一个同情者,但也许你需要的是NSSelectorFromString。在Runtime Reference中明确提到,您可以使用它将字符串转换为选择器。

票数 180
EN

Stack Overflow用户

发布于 2014-02-26 13:11:17

我知道这个问题很久以前就得到了回答,但我还是想分享一下。这也可以使用sel_registerName来完成。

问题中的示例代码可以重写为:

代码语言:javascript
复制
SEL selector = sel_registerName("doWork:");
[myobj respondsToSelector:selector];
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/112643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档