Les sélecteurs en Objective-C?

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"...

  • Vous voulez lire le Sélecteur de description sur le site des développeurs Apple: Sélecteurs.
  • Stanford cours CS193P affectation 1B? J'ai exactement la même question ici! 🙂
InformationsquelleAutor Craig | 2009-04-10