Junior — Middle
¿Incluye Swift recolección automática de basura, similar a GC en otros lenguajes?
sobes.tech AI
Respuesta de la IA
En Swift no se utiliza la recolección automática de basura (GC) en el sentido clásico, como en Java o C#. En su lugar, Swift aplica un sistema de conteo de referencias (ARC — Automatic Reference Counting). ARC rastrea automáticamente el número de referencias a un objeto y libera la memoria cuando ya no hay referencias.
Ejemplo:
class Person {
var name: String
init(name: String) {
self.name = name
}
}
var person1: Person? = Person(name: "Ivan")
var person2 = person1 // aumenta el contador de referencias
person1 = nil // el objeto todavía vive, ya que person2 hace referencia a él
person2 = nil // ahora el objeto se libera
De esta manera, ARC funciona automáticamente, pero sin pausas ni costos adicionales, característicos de los recolectores de basura tradicionales.