Tout d'abord, je ne suis pas sûr de vraiment comprendre ce qu'est un sélecteur. De ma compréhension, c'est le nom d'une méthode, et vous pouvez l'affecter à une classe de type 'SEL' et ensuite exécuter des méthodes telles que respondToSelector pour voir si le récepteur met en œuvre cette méthode. Quelqu'un peut-il offrir une meilleure explication?
D'autre part, à ce point, 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
est clairement une sorte de NSString, et doit répondre à lowercaseString, je ne peux pas obtenir le 'respondsToSelector' conditionnel pour retourner "OUI"...