SEL
选择器用作 Objective-C 中的方法标识符。
在下面的示例中,有两个选择器。new
和 setName:
Person* customer = [Person new];
[customer setName:@"John Doe"];
每对括号对应一条消息发送。在第一行,我们向 Person
类发送包含 new
选择器的消息,在第二行,我们发送包含 setName:
选择器和字符串的消息。这些消息的接收者使用选择器来查找要执行的正确操作。
大多数情况下,使用括号语法传递消息就足够了,但有时你需要使用选择器本身。在这些情况下,SEL
类型可用于保存对选择器的引用。
如果选择器在编译时可用,则可以使用 @selector()
获取对它的引用。
SEL s = @selector(setName:);
如果需要在运行时找到选择器,请使用 NSSelectorFromString。
SEL s NSSelectorFromString(@"setName:");
使用 NSSelectorFromString 时,请确保将选择器名称包装在 NSString 中。
它通常用于检查委托是否实现了可选方法。
if ([self.myDelegate respondsToSelector:@selector(doSomething)]) {
[self.myDelegate doSomething];
}