首先,我不确定我是否真的了解选择器。据我了解,它是方法的名称,您可以将其分配给类型为'SEL'的类,然后运行诸如responseToSelector之类的方法,以查看接收方是否实现了该方法。有人可以提供更好的解释吗?
其次,到目前为止,我有以下代码:
NSString *thing = @"Hello, this is Craig";
SEL sel = @selector(lowercaseString:);
NSString *lower = (([thing respondsToSelector:sel]) ? @"YES" : @"NO");
NSLog (@"Responds to lowercaseString: %@", lower);
if ([thing respondsToSelector:sel]) //(lower == @"YES")
NSLog(@"lowercaseString is: %@", [thing lowercaseString]);
但是,尽管thing
显然是一种NSString,并且应该响应lowercaseString,但我无法获得“ respondsToSelector”条件来返回“ YES” ...