¿Cómo puedo saber qué inicializador es el inicializador designado para CUALQUIER clase? Supongo que es el que toma la mayoría de los parámetros, pero podría haber ocasiones en que esto no sea correcto.¿Cómo sé qué inicializador es el inicializador designado?
Respuesta
La respuesta de omz se puede establecer más firmemente: La documentación para una clase de estructura especificará cuál es el inicializador designado. Es necesario saber qué es el inicializador designado para escribir subclases que se comporten correctamente. El D.I de la subclase debe invocar D.I de la superclase para estar seguro de que está correctamente inicializado.
Sin embargo, su suposición sobre la mayor cantidad de parámetros está bien fundada. Apple en realidad dice que es a menudo el D.I. en algunos lugares.
El inicializador de una clase que tiene la dotación completa de parámetros de inicialización suele ser el inicializador designado.
Algunas subclases proporcionan inicializadores de conveniencia que suministran valores por defecto a un inicializador que lleva el conjunto completo de parámetros de inicialización. Este inicializador suele ser el inicializador designado, el inicializador más importante de una clase.
Gracias. Como siempre, ¡la respuesta está en los documentos! – lampShade
@lampShade: :) Como siempre. Otros marcos que Cocoa _deberían especificar el inicializador designado si pretenden que los usuarios subclases. Si no lo especifican así, ¡consiga un nuevo marco! ¡Encantado de ayudar! –
No se puede saber realmente esto sin mirar el código fuente (imposible para los marcos del sistema) o la documentación (potencialmente de una superclase).
¡Oye, escribiste un estante de noticias! Me encanta esa aplicación. Leo mis feeds cada mañana en él. ¡Buen trabajo! – lampShade
De BigNerdRanch iOS libro de programación:
* El inicializador designado llama inicializador designado de la superclase (directa o indirectamente) antes de hacer cualquier otra cosa.
* Cualquier otro inicializador llama al inicializador designado de la clase (directa o indirectamente).
* Si una clase declara un inicializador designado que es diferente de su superclase, el inicializador designado de la superclase debe anularse para llamar al nuevo inicializador designado (directa o indirectamente).
Conway, Joe; Hillegass, Aaron; Keur, Christian (14/02/2014). Programación iOS: The Big Nerd Ranch Guide (4ª Edición) (Big Nerd Ranch Guides) (Ubicaciones Kindle 1906-1910). Educación Pearson. Versión Kindle.
- 1. Error al llamar inicializador designado en clase NSManagedObject 'NombredeClase'
- 2. ¿Es posible obtener un puntero a la estructura 'this' cuando se utiliza el inicializador designado?
- 3. Combinación del inicializador de listas y el inicializador de objetos
- 4. ¿Qué sucede con los campos no nombrados por un inicializador designado?
- 5. inicializador sintaxis
- 6. en un inicializador estático
- 7. Javascript - ¿inicializador de objetos?
- 8. ¿Cómo generar el inicializador en Ruby?
- 9. ¿Cuándo una clase tendrá alguna vez más de un inicializador designado?
- 10. std :: shared_ptr y inicializador
- 11. Crear un inicializador
- 12. En Scala, ¿qué es un "inicializador anticipado"? En
- 13. elemento inicializador no es constante en C
- 14. Ejecución matriz inicializador
- 15. error: CoreData: Error: No se pudo llamar inicializador designado en NSManagedObject clase de 'productos'
- 16. Qué inicializador (s) anular para la subclase UITableViewController
- 17. Asignación condicional del inicializador C#
- 18. Excepción: escriba inicializador para 'system.data.sqlclient.sqlconnection'?
- 19. compilación C# diccionario inicializador inconsistencia
- 20. Obj-C: NSError en el inicializador
- 21. Recibo el "Inicializador Inválido", ¿qué estoy haciendo mal?
- 22. Invocar inicializador estático de nuevo
- 23. faltante; después de bucle inicializador
- 24. Error de Objective-C: elemento de inicializador no es constante
- 25. ¿Cómo configurar la unión en el inicializador de clase?
- 26. C# equivalente de Java ejemplo inicializador
- 27. El inicializador de objeto dinámico C# no compilará
- 28. variable C++ tiene inicializador pero tipo incompleto?
- 29. ¿Qué significa punto (.) En un inicializador de estructura?
- 30. Depuración de un Inicializador de objetos C#
¿Qué quiere decir con "inicializador designado"? init es el estándar. – shawnwall
@shawnwall: el inicializador designado es el método init ... que todos los demás métodos init ... llaman. P.ej. para 'UIView' y' NSView', esto es 'initWithFrame:' (se menciona en la documentación). Consulte [aquí] (http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocAllocInit.html#//apple_ref/doc/uid/TP30001163-CH22-106376) para obtener más información. – omz