2012-05-10 6 views
7

En Java, cuando anula un método, se le aconseja (casi forzado) que agregue la anotación @Override. ¿Existe una convención para marcar (ya sea en los comentarios, o mediante algún otro mecanismo) métodos anulados en el mundo de Objective-C?Convenio Objective-C para métodos reemplazados

+0

Pregunta relacionada: [Objective-C equivalente de anulación en C#] (http://stackoverflow.com/questions/1034554/objective-c-equivalent-of-override-in-c-sharp) –

Respuesta

3

No. Todos los métodos en Objective-C se envían a través de los mensajes de Objective-C, por lo que todos los métodos se pueden anular. Eso es parte del lenguaje.

No hay ninguna convención para marcar esto, tampoco. Es parte del lenguaje que sucede, y si comentaras lo contrario, sería confuso cuando lo hicieras más tarde, accidental o intencionalmente.

+0

Estoy enterado de eso, la situación es la misma con Java - (casi) todas las funciones son virtuales, sin embargo, todavía veo el punto de advertir que está anulando un método principal. Ciertamente hará que errores como no llamar '[super loadView];' sean más fáciles de detectar –

+0

. Debe verificar la documentación y leer su método. Algunos métodos, es importante llamar súper. Algunos métodos, es fundamental que ** no ** llame súper. En el pasado, hubiera dicho que lo que quieres no es posible para el IDE, pero es evidente que Apple puede hacer casi cualquier cosa ahora que controlan el compilador, el marco y el lenguaje, por lo que podría valer la pena enviar una sugerencia a través de su error reportero. –

+0

(por cierto, gran pregunta) –

1

No, realmente no.

No parece importar tanto, probablemente debido al envío dinámico.

1

No estoy seguro de si Xcode hace esto, pero el IDE AppCode de JetBrains anota automáticamente métodos sobrescritos con el pequeño azul anulación insignia en el margen, así:

AppCode Override

. . además de eso (también se muestra), también me gusta crear algunas plantillas en vivo (también conocidas como fragmentos de código en Xcode) para anotar métodos anulados con una etiqueta #pragma. Me parece que ayuda a definir una estructura estándar en este orden:

  • métodos de clase
  • inicialización & destrucción métodos
  • métodos públicos/protocolo
  • Métodos sustituidos
  • métodos privados

y al tener Plantillas en vivo/Fragmentos de código Puedo simplemente escribir 'anular [pestaña]' y el IDE crea la etiqueta #pragma para mí.

. . quizás incluso podría usar OCLint para verificar que se respete esta estructura.

Cuestiones relacionadas