Je suis novice dans le domaine de l'Objective C (développeur Java la plupart du temps) et je suis en train de me lancer dans ma première application de tueur. :-) Pour l'instant, je suis un peu confus à propos de l'utilisation des sélecteurs comme arguments de méthode. Ils semblent être un peu différents des délégués en C# par exemple.Signature de méthode pour un sélecteur
Compte tenu de la signature de la méthode suivante
-(void)execute:(SEL)callback;
est-il un moyen de faire respecter la signature du sélecteur est passé à une telle méthode? La méthode attend un sélecteur d'une méthode avec la signature suivante
-(void)foo:(NSData*)data;
Mais le SEL (type) est générique, donc il y a une bonne chance de passer un mauvais sélecteur sur la méthode exécuter. OK au moins au moment de l'exécution on verrait un comportement amusant ... mais je voudrais voir un avertissement/erreur du compilateur lorsque cela se produit.
Je ne connais pas la réponse à cette question (s'il y en a une), mais je veux juste noter qu'il vaut la peine de vérifier que l'objet récepteur répond réellement au sélecteur: if ([obj répondsToSelector: ...]). De cette façon, vous savez au moins que le sélecteur passé est raisonnable pour l'objet en question. –