2010-05-19 2 views
0

Quelqu'un peut-il me guider sur la façon d'éviter le remplacement des méthodes de superclasse dans la sous-classe en Objective-C, comme le concept «final» en Java.Comment éviter de surcharger les méthodes de la sous-classe dans l'objectif c

+0

Cette question pourrait également faire la lumière sur le problème: http://stackoverflow.com/questions/2864273/how-to-avoid-the-base-class-member-functions-getting-overridden-by-sub -class-in-o/2864554 –

Répondre

4

Vous ne pouvez pas. Vous ne pouvez même pas être sûr que les méthodes d'une classe feuille sont celles que vous avez fournies, car nous pouvons utiliser la bibliothèque d'exécution Objective-C pour remplacer les implémentations de méthode dans une application en cours d'exécution. C'est une caractéristique délibérée de la conception de la bibliothèque d'exécution.

+0

ok, alors comment protéger mes propriétés super classe, qui ne peuvent pas changer à travers l'existence de l'objet. et comment le développeur gère ces situations lors de l'écriture des frameworks ou des wrappers. – chethan

+0

@chethan vous n'avez pas, ou vous documentez l'exigence et espère que les développeurs la suivent. Vous pouvez faire des choses comme masquer les propriétés de KVC ou masquer leur utilisation, mais vous ne pouvez pas empêcher les gens d'y accéder. –

+0

essayez ceci: http://iphonedevelopertips.com/objective-c/private-methods.html –

-1

Eh bien, je ne suis pas sûr d'un équivalent « finale » dans c objectif mais s'il existe des méthodes dans une classe super que vous ne voulez pas appelé juste ne pas écrire cette méthode particulière dans votre sous classe

Plus je pense qu'une méthode écrite avec le préfixe "+" par opposition à "-" est une méthode de classe et non une méthode d'instance, donc cette méthode devrait toujours être la même.

Questions connexes