首先,我不确定我是否真的理解选择器是什么。根据我的理解,它是一个方法的名称,你可以将它分配给一个'SEL'类型的类,然后运行诸如respondToSelector之类的方法来查看接收者是否实现了该方法。有人可以提供更好的解释吗?
其次,到目前为止,我有以下代码:
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,并且应该响应小写字符串,我也无法让“respondsToSelector”有条件地返回“YES”......