Unmanaged
] [1]. [1]: https://developer.apple.com/reference/swift/unmanaged
weak
debe usarse, si un objeto referenciado puede ser desasignado durante la vida útil del objeto que contiene la referencia. unowned
propietario, si no se espera que un objeto referenciado se desasigne durante la vida útil del objeto que contiene la referencia. Ejemplo:
class A : CLLocationManagerDelegate
{
init()
{
let locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.startLocationUpdates()
}
}
Este ejemplo no funcionará correctamente, ya que el administrador de ubicación se desasigna una vez que el inicializador regresa. La solución adecuada es crear una referencia fuerte como una variable de instancia:
class A : CLLocationManagerDelegate
{
let locationManager:CLLocationManager
init()
{
locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.startLocationUpdates()
}
}