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
Respuesta
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.
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 –
. 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. –
(por cierto, gran pregunta) –
No, realmente no.
No parece importar tanto, probablemente debido al envío dinámico.
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í:
. . 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.
- 1. ¿Hay algún convenio de ordenación de métodos Java?
- 2. Bloques ObjectiveC equivalente en Java
- 3. ¿Por qué es 'virtual' opcional para los métodos reemplazados en las clases derivadas?
- 4. Convenio sobre la configuración en ASP.NET MVC
- 5. ¿Por qué C# no se une correctamente a los métodos genéricos reemplazados?
- 6. objectivec: fb publicar comentario error
- 7. ObjectiveC Parse Integer from String
- 8. ¿Pueden las clases secundarias PHP alterar los parámetros de los métodos reemplazados?
- 9. Diferencia entre NSLog y sentencia printf para ObjectiveC
- 10. ¿Hay alguna manera de marcar (en tiempo de compilación) métodos "reemplazados" cuyas firmas no coincidan con la firma base?
- 11. Android: ¿Cómo tener un menú compartido en cada actividad (Lista) sin volver a escribir los métodos reemplazados?
- 12. Convenio de Objective C: Cuándo usar Para y cuándo usar Con
- 13. Pros y contras del uso de excepción en IOS/ObjectiveC
- 14. Rendimiento TSQL con @@ Error y ¿Pueden ser reemplazados?
- 15. enviar una notificación desde javascript en UIWebView a ObjectiveC
- 16. ¿Puedo colocar un ObjectiveC @selector en un NSDictionary?
- 17. ¿Cómo implementar un puente sin cargo en ObjectiveC/C?
- 18. ObjectiveC: ¿dónde declarar las propiedades de instancias privadas?
- 19. Uso de librerías estáticas C/C++ desde iPhone Aplicaciones ObjectiveC
- 20. Cómo dividir la nueva línea de NSString en ObjectiveC
- 21. ObjectiveC que pasa alrededor ... nula terminado listas de argumentos
- 22. obteniendo el error "invalid_client" en la muestra gdata-objectivec-client
- 23. Ayuda con código GCC y ObjectiveC y Cygwin
- 24. más métodos para before_validation
- 25. ObjectiveC Sintaxis para especificar el nombre del protocolo en el argumento del método
- 26. ¿Tiene sentido el momento de llamar al método de la clase superior en ObjectiveC?
- 27. Métodos generados para la evaluación de polinomios
- 28. Pregunta sobre el objetivo del Convenio de llamada C y el argumento que pasa en ARM
- 29. usando Dynamic para agregar métodos?
- 30. Emacs: métodos para depurar python
Pregunta relacionada: [Objective-C equivalente de anulación en C#] (http://stackoverflow.com/questions/1034554/objective-c-equivalent-of-override-in-c-sharp) –