Swift Language Tipos de opcionales


Ejemplo

Los opcionales son un tipo de enumeración genérico que actúa como un contenedor. Esta envoltura permite que una variable tenga uno de dos estados: el valor del tipo definido por el usuario o nil , que representa la ausencia de un valor.

Esta habilidad es particularmente importante en Swift porque uno de los objetivos de diseño establecidos del lenguaje es trabajar bien con los marcos de Apple. Muchos (la mayoría) de los marcos de trabajo de Apple utilizan nil debido a su facilidad de uso y su importancia para los patrones de programación y el diseño de API en Objective-C.

En Swift, para que una variable tenga un valor nil , debe ser opcional. Se pueden crear opcionales agregando una ! o un ? al tipo de variable. Por ejemplo, para hacer un Int opcional, puedes usar

var numberOne: Int! = nil
var numberTwo: Int? = nil

? los opcionales deben ser explícitamente desenvueltos y deben usarse si no está seguro de si la variable tendrá un valor cuando acceda a ella. Por ejemplo, al convertir una cadena en un Int , el resultado es un Int? opcional Int? , porque se devolverá nil si la cadena no es un número válido

let str1 = "42"
let num1: Int? = Int(str1) // 42

let str2 = "Hello, World!"
let num2: Int? = Int(str2) // nil

! los opcionales se desenvuelven automáticamente y solo deben usarse cuando esté seguro de que la variable tendrá un valor cuando acceda a ella. Por ejemplo, un UIButton! global UIButton! variable que se inicializa en viewDidLoad()

//myButton will not be accessed until viewDidLoad is called,
//so a ! optional can be used here
var myButton: UIButton!

override func viewDidLoad(){
    self.myButton = UIButton(frame: self.view.frame)
    self.myButton.backgroundColor = UIColor.redColor()
    self.view.addSubview(self.myButton)
}