Primeiro, não tenho certeza se realmente entendo o que é um seletor. Pelo que entendi, é o nome de um método, e você pode atribuí-lo a uma classe do tipo 'SEL' e executar métodos como respondToSelector para verificar se o destinatário implementa esse método. Alguém pode oferecer uma explicação melhor?
Em segundo lugar, até este ponto, tenho o seguinte código:
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]);
No entanto, embora thing
seja claramente um tipo de NSString e deva responder a lowercaseString, não posso obter o 'respondsToSelector' condicional para retornar "YES" ...