2012-05-10 10 views
7

In Java, quando si esegue l'override di un metodo, si consiglia (quasi forzatamente) di aggiungere l'annotazione @Override. Esiste una convenzione per marcare (sia nei commenti, sia con un altro meccanismo) metodi sovrascritti nel mondo Objective-C?Convenzione Objective-C per metodi sovrascritti

+0

Domanda correlata: [equivalente Objective-C di override in C#] (http://stackoverflow.com/questions/1034554/objective-c-equivalent-of-override-in-c-sharp) –

risposta

3

No. Tutti i metodi in Objective-C vengono inviati tramite la messaggistica di Objective-C, quindi tutti i metodi possono essere sovrascritti. Questa è parte della lingua.

Non c'è alcuna convenzione per contrassegnare questo, neanche. Fa parte del linguaggio che succede, e se dovessi commentare altrimenti sarebbe solo confusione quando lo hai fatto in seguito, accidentalmente o intenzionalmente.

+0

Sono a conoscenza di che, la situazione è la stessa di Java - (quasi) tutte le funzioni sono virtuali, tuttavia vedo ancora il punto per avvertire che stai sovrascrivendo un metodo genitore. Sicuramente farà errori come non chiamare '[super loadView];' più facile da individuare –

+0

Devi controllare la documentazione e leggere il tuo metodo. Alcuni metodi, è importante chiamare super. Alcuni metodi, è fondamentale che tu ** non ** chiami super. In passato, avrei detto che quello che vuoi non è possibile per l'IDE, ma è evidente che Apple può fare quasi tutto ora che controlla il compilatore, il framework e il linguaggio, quindi potrebbe valere la pena di presentare un suggerimento tramite il loro bug reporter. –

+0

(btw, ottima domanda) –

1

No, non proprio.

Non sembra avere importanza, probabilmente a causa della spedizione dinamica.

1

Non sono sicuro se Xcode fa questo, ma l'AppCode IDE da JetBrains annota automaticamente i metodi sostituiti con il piccolo blu distintivo di override a margine, in questo modo:

AppCode Override

. . oltre a questo (anche mostrato), mi piace anche creare alcuni modelli dal vivo (aka code-snippets in Xcode) per annotare metodi sovrascritti con un tag #pragma. Trovo che aiuta a definire una struttura standard in questo ordine:

  • metodi di classe
  • inizializzazione & distruzione metodi
  • metodi pubblici/protocollo
  • Metodi sostituiti
  • metodi privati ​​

e con modelli/frammenti di codice in tempo reale posso semplicemente digitare 'override [tab]' e l'IDE crea il tag #pragma per me.

. . forse potresti anche usare OCLint per verificare che questa struttura sia rispettata.

Problemi correlati