performSelector ou simple message?

Paul_pPaul_p Membre
Salut,

est-ce que l'appel à  performSelector: est équivalent à  l'appel d'un message à  un destinataire?

exemple :

[voiture performSelector: demarrer]<br />ou<br />[voiture demarrer]

?
Aussi,
[voiture performSelector: demarrer withObject:self];<br /><br />//est-il possible de rajouter ce withObject dans le message :<br /><br />[voiture demarrer];


?

Merci

Réponses

  • AliGatorAliGator Membre, Modérateur
    08:44 modifié #2
    [tt]-performSelector:[/tt] prend un @selector en paramètre, pas directement le nom de la méthode.

    A part ça fonctionnellement, oui cela est équivalent. En terme de performance, sans doute pas. performSelector n'est à  utiliser que quand c'est fonctionnellement utile, typiquement quand passer un selector en paramètre est utile parce que ce @selector a été stocké dans une variable d'instance ou de ce genre.

    Par contre pour la 2e question, le withObject passe un paramètre au selector. Donc bien sûr il faut que le @selector ait une signature qui prenne un objet en paramètre (Ce qui n'est pas le cas de ton selector "demarrer").
  • Paul_pPaul_p Membre
    08:44 modifié #3
    Donc bien sûr il faut que le @selector ait une signature qui prenne un objet en paramètre (Ce qui n'est pas le cas de ton selector "demarrer").


    merci, que veux-tu dire par là ?
  • muqaddarmuqaddar Administrateur
    08:44 modifié #4
    dans 1308716453:

    Donc bien sûr il faut que le @selector ait une signature qui prenne un objet en paramètre (Ce qui n'est pas le cas de ton selector "demarrer").


    merci, que veux-tu dire par là ?


    [voiture demarrer:(id)object]
    
  • Paul_pPaul_p Membre
    08:44 modifié #5
    D'accord merci

    ;)
Connectez-vous ou Inscrivez-vous pour répondre.