Sobes.tech
Junior — Middle

¿Se eliminará automáticamente un objeto de la memoria si hay tres referencias débiles (weak) y una no obligatoria (unowned) que apuntan a él?

sobes.tech AI

Respuesta de la IA

El objeto será eliminado automáticamente de la memoria si no quedan referencias fuertes (strong) a él. Las referencias débiles (weak) y no obligatorias (unowned) no aumentan el contador de referencias del objeto. En su caso, si solo hay tres referencias weak y una unowned, pero ninguna fuerte, el objeto se considera no utilizado y será desalojado.

Ejemplo:

class MyClass {}

var strongRef: MyClass? = MyClass() // referencia fuerte
weak var weakRef1 = strongRef
weak var weakRef2 = strongRef
weak var weakRef3 = strongRef
unowned var unownedRef = strongRef!

strongRef = nil // ahora no hay referencias fuertes, el objeto será eliminado