Aprende a Programar Apps para iPhone con  Swift, SwiftUI y UIKit - lafactoriaapple

Desencapsulamiento Implícito

Podremos hacer un desencapsulamiento implícito a la hora de declarar un Opcional siempre que tengamos la seguridad de que la Variable o Constante va a tener un valor. Los Opcionales así declarados no tendrán que ser desencapsulados para poder acceder al valor que almacenan.

Si no asignamos ningún valor a la Variable o Constante Opcional que definimos desencapsulada implícitamente, nuestra aplicación tendrá un provocará un error en tiempo de ejecución.

Cuando definimos un Opcional "normal" agregamos el signo de interrogación ? en la declaración del Tipo de Dato.

var nombre : String?

Para el caso que nos ocupa, si queremos hacer un desencapsulamiento implícito de Opcional agregamos el signo de exclamación ! ya que estamos seguros que se le va a asignar un valor.

var nombre : String!
nombre = "Pedro"

Gracias a esta declaración implícita del Opcional, ya no tendremos que desencapsularlo para acceder a su valor, es decir, no tendremos que utilizar Condicionales (Forced Unwrapping) ni hacer Optional Binding. La forma de acceder al valor es la siguiente:

var muestroNombre : String = nombre
print(nombre)

Recopilamos todo el código

var nombre : String!
nombre = "Pedro"
var muestroNombre : String = nombre
print(nombre)

Veamos como habríamos afrontado esta situación en el caso de haber tenido un Opcional "normal". Tendríamos que hacer un Optional Binding para acceder al valor almacenado en el Opcional

var nombre : String?
nombre = "Pedro"
if let muestroNombre = nombre{
    print(muestroNombre)
}

Ficheros Adjuntos

Más en esta Sección

  • Operador Nil-Coalescing

  • Optional Binding

  • Forced Unwrapping

  • Introducción a los Opcionales en Swift