Sobes.tech
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 weak y unowned para 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")
    }
}