¿Qué pasó con el constructor UIView? () En Swift 3.0?

En Swift 2.2, a menudo declaraba variables usando una syntax concisa similar a let x = UIView?() . Esto dio x la UIView? escriba, y lo inicializó con nil . (Por supuesto, puede usar cualquier tipo en lugar de UIView en estos ejemplos)

Sin embargo, cuando hago lo mismo en Swift 3.0, Cannot invoke initializer for type 'UIView?' with no arguments un error: Cannot invoke initializer for type 'UIView?' with no arguments Cannot invoke initializer for type 'UIView?' with no arguments También dice que Overloads for 'UIView?' exist with these partially matching parameter lists: (Wrapped), (nilLiteral: ()) Overloads for 'UIView?' exist with these partially matching parameter lists: (Wrapped), (nilLiteral: ()) . De alguna manera, no creo que UIView?(nilLiteral: ()) sea ​​todo lo que busco.

Naturalmente, hay otros métodos alternativos para hacer lo mismo, como let x: UIView? = nil let x: UIView? = nil y let x = nil as UIView() , pero son más detallados que el método que estaba usando anteriormente. ¿ UIView?() eliminó el constructor UIView?() En Swift 3.0, o ¿se ha reemplazado en un formulario que aún no he descubierto?

Lo siguiente inicializa x a nil, los paréntesis son completamente superfluos.

 var x: UIView? return x == nil 

Volverá verdadero

Consulte los documentos del desarrollador para obtener más información.

https://developer.apple.com/library/content//documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html

Si define una variable opcional sin proporcionar un valor predeterminado, la variable se establece automáticamente en cero para usted:

 var surveyAnswer: String? // surveyAnswer is automatically set to nil 

@Hamish publicó un comentario para aclarar el motivo por el cual UIView? () Ya no funciona:

“¿La syntax UIView? es simplemente azúcar sintáctico para Opcional, por lo tanto UIView? () es solo azúcar sintáctica para Optional.init (). En Swift 2, init () de Optional construye un nuevo valor opcional establecido en .None. Entonces sí, estaba funcionando correctamente. En Swift 3 sin embargo, este inicializador ha sido eliminado, ¿por qué UIView? () Ya no funciona “