¿Cuál es el punto de usar variables débiles en IBOutlets?

Una referencia débil a un objeto no hace +1 al RetenerCount de ese objeto; No reclamará la propiedad.

Digamos que tiene el objeto A y cree una salida al objeto B (una vista) y conviértalo en una propiedad sólida. Cuando el objeto A se elimina y el objeto B todavía está en la memoria, no se puede eliminar porque B todavía es propiedad de A. Para permitir la eliminación de ambos objetos, el objeto B se debe eliminar primero (configurándolo en “nil “).

Cuando se usa una referencia débil, este enigma no existe. Sin embargo, existe otro problema: en el ejemplo, cuando se usa una referencia débil, el objeto B se puede eliminar al azar. Ocurre cuando la aplicación se queda sin memoria, entra en un estado de fondo inactivo o simplemente cuando se elimina su objeto principal cuando no lo esperaba.

Por lo general, las salidas solo están activas cuando se muestra una vista. Cuando no se muestra, no necesitará la salida. Cuando se muestra, no se eliminará repentinamente. Por lo tanto, puede usar de forma segura una propiedad débil para una toma de corriente.

¡Buena suerte!

Reinder, LearnAppMaking.com

Existen referencias débiles donde un objeto de referencia no controla la propiedad del otro.

Los objetos en la jerarquía de la pantalla se crean y eliminan según sea necesario. Una referencia fuerte obligaría al objeto a seguir existiendo.