Prevenire l'override dei metodi in Objective-C [closed]

0

Obiettivo-C manca di metodi privati o metodi finali java-esque. Ciò significa che è possibile che una sottoclasse sostituisca (accidentalmente) alcuni interni di una superclasse.

Come si prevengono i metodi di sovrascrittura in Objective-C?

    
posta STjurny 15.01.2013 - 18:34
fonte

1 risposta

7

How does one prevent overriding methods in Objective-C?

Scrivi nella documentazione della tua classe qualcosa come:

Subclasses should not override this method.

Scherzi a parte. Ho copiato tale citazione direttamente dalla documentazione per UIView.

L'obiettivo C incoraggia una cultura del fare per convenzione molte cose che sarebbero applicate da un compilatore in altre lingue, e questa è una di quelle cose. Sono sicuro che potresti giocare alcuni giochi con il runtime per cui ottieni l'IMP per il metodo che stai per chiamare e confrontalo con l'IMP del metodo della tua stessa classe. Ma poi, è possibile che qualcuno possa ingoiare un is-a su di te, o altrimenti giocare ai propri giochi, e alla fine di solito è meglio dire semplicemente "Per favore non farlo."

    
risposta data 15.01.2013 - 18:55
fonte

Leggi altre domande sui tag