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

我能做的是:

SEL selector = @selector(doWork:);
[myobj respondsToSelector:selector];

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

SEL selector = selectorFromString(@"doWork");
[myobj respondsToSelector:selector];

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

推荐答案

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

Objective-c相关问答推荐

Objective-C struct 的默认值以及如何测试

多个 WKWebView 之间的 Cookie 共享

具有动态高度的子视图的自动布局 UIScrollView

iOS 应用程序下一个键不会转到下一个文本字段

如何将 UInt32 设置为最大值

声明变量id和NSObject *有什么区别?

在Objective-C中从类名的NSString创建对象

.m 文件中的空@interface 声明是做什么用的?

如何在 XCode 中复制文件?

对块进行类型定义是如何工作的

未找到 Apple Mach-O 链接器警告目录

声音在 iPhone 模拟器中不起作用?

NSSet 到 NSArray 转换调用 objectAtIndex?

如何在 Objective-C 中将 NSString 解析为 BOOL?

使用 NSLog 打印 NSData

HTML 内容适合 UIWebview 而无需缩小

主队列上的 performSelectorOnMainThread: 和 dispatch_async() 有什么区别?

架构 i386 clang 的重复符号

请求访问相机胶卷的权限

公开只读但具有私有设置器的 Objective-C 属性