¿Qué son los inicializadores de conveniencia?
Versión Swift: 5.2
Paul Hudson @twostraws 28 de mayo de 2019
Los inicializadores designados son la forma predeterminada de crear nuevas instancias de un tipo. Hay otros, conocidos como inicializadores de conveniencia, que están ahí para ayudarlo a realizar tareas comunes con mayor facilidad, pero estos son adicionales a sus inicializadores designados en lugar de un reemplazo.
Por ejemplo, puede tener una clase Polygon
que almacena conjuntos de puntos que se dibujarán más adelante, como esta:
class Polygon { var points: init(points: ) { self.points = points }}
Ahora, si eso fuera solo una estructura, podría seguir adelante y agregar otros inicializadores. Pero como se trata de una clase, donde las reglas para la inicialización son bastante complejas, podría agregar un inicializador conveniente que configure cuadrados de una longitud específica, como este:
convenience init(squareWithLength length: CGFloat) { let points = self.init(points: points)}
Tenga en cuenta cómo el inicializador de conveniencia termina llamando al inicializador designado: este es un requisito, y significa que sus inicializadores de conveniencia solo son responsables de configurar las partes que son únicas para ellos en lugar de hacer todo.
PATROCINAR la creación y el mantenimiento de la infraestructura de suscripción en la aplicación es difícil. Por suerte hay una manera mejor. Con RevenueCat, puede implementar suscripciones para su aplicación en horas, no meses, para que pueda volver a crear su aplicación.
Pruébalo gratis
Patrocina Hacking con Swift y llega a la comunidad Swift más grande del mundo!
Disponible en iOS 8.0-obtenga más información en mi libro Patrones de diseño Swift
Soluciones similares
- ¿Qué son los inicializadores designados?
- Arreglar «Class ViewController no tiene inicializadores»
- Cómo convertir una cadena de nombre HTML en un UIColor
- Cómo usar la contención del controlador de vista
- Cómo convertir un color hexadecimal en un UIColor
Acerca de la Base de conocimientos de Swift
Esto forma parte de la Base de conocimientos de Swift, una colección gratuita de soluciones de búsqueda para preguntas comunes de iOS.