Comment appelez-vous une méthode pour la superclasse d'un objet Objective-C d'ailleurs?
Si vous êtes à la mise en œuvre d'une sous-classe, vous pouvez, au sein de votre application, appeler explicitement la super-classe de la méthode, même si vous avez remplacé la méthode, c'est à dire:
[self overriddenMethod]; //calls the subclass's method
[super overriddenMethod]; //calls the superclass's method
Que si vous voulez appeler la super-classe de la méthode à partir de quelque part à l'extérieur de la sous-classe de mise en œuvre, à savoir:
[[object super] overriddenMethod]; //crashes
Est-ce même possible? Et, par extension, est-il possible d'aller jusqu'à plus d'un niveau dans la mise en œuvre, à savoir:
[[super super] overriddenMethod]; //will this work?
source d'informationauteur executor21
Vous devez vous connecter pour publier un commentaire.
Plus agréable (pour le débogage) est d'ajouter une catégorie de méthode qui le fait pour vous:
Le fait qu'il n'y a pas de moyen plus pratique de le faire est par la conception.
Vous pouvez envoyer
[[[object class] superclass] methodForSelector: ...]
et à l'appeler par le biais de l'IMP pointeur directement, si vous voulez... mais si vous ne le faites pas, il y a probablement quelque chose de mal avec votre conception.