Premièrement, je ne suis pas sûr de bien comprendre ce qu'est un sélecteur. D'après ce que je comprends, c'est le nom d'une méthode, et vous pouvez l'assigner à une classe de type 'SEL', puis exécuter des méthodes telles que respondToSelector pour voir si le récepteur implémente cette méthode. Quelqu'un peut-il offrir une meilleure explication?
Deuxièmement, à ce stade, j'ai le code suivant:
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]);
Cependant, même si thing
c'est clairement une sorte de NSString, et que je devrais répondre à lowercaseString, je ne peux pas obtenir le conditionnel 'respondsToSelector' pour retourner "YES" ...