Junior — Middle
¿Qué operaciones o propiedades están disponibles al definir una clase que no están en una estructura?
sobes.tech AI
Respuesta de la IA
En Swift, las clases tienen varias características que no poseen las estructuras:
- Herencia: las clases pueden heredar de otras clases, lo que permite crear jerarquías y sobrescribir métodos.
- Desinicializadores (deinit): las clases pueden tener desinicializadores para liberar recursos al eliminar una instancia.
- Tipo de referencia: las clases se pasan por referencia, mientras que las estructuras por valor.
- Tipos de propiedades: las clases pueden tener propiedades que son referencias a objetos, lo que afecta la gestión de memoria.
- Posibilidad de usar referencias
weakyunownedpara prevenir ciclos de referencias fuertes.
Ejemplo de una clase con un desinicializador:
class Person {
var name: String
init(name: String) {
self.name = name
}
deinit {
print("Person \(name) está siendo desinicializada")
}
}