Objective-C Language SEL


Exemple

Les sélecteurs sont utilisés comme identificateurs de méthode dans Objective-C.

Dans l'exemple ci-dessous, il y a deux sélecteurs. new et setName:

Person* customer = [Person new];
[customer setName:@"John Doe"];

Chaque paire de parenthèses correspond à un message envoyé. Sur la première ligne, nous envoyons un message contenant le new sélecteur à la classe Person et sur la deuxième ligne, nous envoyons un message contenant le setName: selector et une chaîne. Le destinataire de ces messages utilise le sélecteur pour rechercher la bonne action à effectuer.

La plupart du temps, la transmission de messages à l'aide de la syntaxe entre parenthèses est suffisante, mais vous devez parfois travailler avec le sélecteur lui-même. Dans ces cas, le type SEL peut être utilisé pour contenir une référence au sélecteur.

Si le sélecteur est disponible à la compilation, vous pouvez utiliser @selector() pour obtenir une référence.

SEL s = @selector(setName:);

Et si vous avez besoin de trouver le sélecteur à l'exécution, utilisez NSSelectorFromString.

SEL s NSSelectorFromString(@"setName:");

Lorsque vous utilisez NSSelectorFromString, veillez à envelopper le nom du sélecteur dans un NSString.

Il est couramment utilisé pour vérifier si un délégué implémente une méthode facultative.

if ([self.myDelegate respondsToSelector:@selector(doSomething)]) {
    [self.myDelegate doSomething];
}