-alloc et -init sont des fonctions "magiques" dans le sens où le compilo les connais et peut les traiter à part (Objc est plein de trucs comme ça).
Appeler une fonction sur id, c'est bon (tant que le selector est définit qq part dans un .h en scope). Par contre passer un id en paramètre, ou le retourner, en place d'un truc type différemment (en gros, downcast implicite), et tu te prends un warning il me semble.
Notes aussi que tout coder en id peut jouer des tours assez vilains à bas niveau, si ton sélecteur rentre en conflit avec un autre du même nom, mais qui retourne un struct plutôt qu'un pointeur. Le compilo peut générer du mauvais code dans ce cas, en fonction duquel il choisi.
[^] # Re: A force...
Posté par groumly . En réponse au journal Typage statique pour Python. Évalué à 2.
-alloc et -init sont des fonctions "magiques" dans le sens où le compilo les connais et peut les traiter à part (Objc est plein de trucs comme ça).
Appeler une fonction sur id, c'est bon (tant que le selector est définit qq part dans un .h en scope). Par contre passer un id en paramètre, ou le retourner, en place d'un truc type différemment (en gros, downcast implicite), et tu te prends un warning il me semble.
Notes aussi que tout coder en id peut jouer des tours assez vilains à bas niveau, si ton sélecteur rentre en conflit avec un autre du même nom, mais qui retourne un struct plutôt qu'un pointeur. Le compilo peut générer du mauvais code dans ce cas, en fonction duquel il choisi.