Argument dans le selecteur ?

muqaddarmuqaddar Administrateur
15:11 modifié dans API AppKit #1
Salut,

J'ai l'impression qu'on ne peut pas passer un argument dans un sélecteur :

[item setAction:@selector(selectView: @monItem)];

semble poser problème, mais pas :

[item setAction:@selector(selectView:)];

Réponses

  • cbrandtcbrandt Membre
    15:11 modifié #2
    ben non, le sélecteur lui-même est l'argument (unique dans ce cas) du message setAction...
  • 15:11 modifié #3
    dans le cas du setAction, c'est normal. Par définition l'argument prend la valeur 'self'.

    Sinon si tu n'as que le sélecteur, pour mettre un argument, c'est performSelector:withObject: (withObject: ). Si tu as deux objets, tu peux mettre un deuxième withObjet, et si tu en as 3 ou, tu les mets dans un tableau et tu utilises la méthode avec un seul argument.
  • muqaddarmuqaddar Administrateur
    15:11 modifié #4
    Ok, merci bien.
    Je vois que tout est prévu. :)
  • Eddy58Eddy58 Membre
    novembre 2004 modifié #5
    En effet Oxitan, tout est prévu. :)
    Les méthodes de type performSelector:withObject: spécifient seulement le message a envoyer, mais aucun ciblage. Ce qui est suffisant dans bien des cas...
    Mais pour aller plus loin dans ce sens, il est possible d'utiliser la classe NSInvocation.
    Un objet de classe NSInvocation contient tout les éléments d'un message Objective-C : Une cible, un sélecteur, des arguments, et la valeur de retour. L'objet NSInvocation peut-être modifié pour faire des appels multiples en changeant un ou plusieurs de ces attributs. Cette classe permet beaucoup de choses, dont la communication inter-classes et inter-applications. (distributed objects)
Connectez-vous ou Inscrivez-vous pour répondre.