In primo luogo, non sono sicuro di capire veramente cosa sia un selettore. A quanto mi risulta, è il nome di un metodo e puoi assegnarlo a una classe di tipo "SEL" e quindi eseguire metodi come replyToSelector per vedere se il ricevitore implementa quel metodo. Qualcuno può offrire una spiegazione migliore?
In secondo luogo, a questo punto, ho il seguente codice:
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]);
Tuttavia, anche se thing
è chiaramente una sorta di NSString e dovrebbe rispondere a lowercaseString, non riesco a far sì che il condizionale "respondsToSelector" restituisca "YES" ...