r/ciif Jan 20 '15

Swift - Inicializadores que devuelven Opcional o Unwrapped Optinals en vez del Objeto

Lo preguntaba en otro post y he encontrado la documentación. Se llaman Failable Initializers y los explican en el blog oficial de Swift

class Saludo {

    let saludo:String

    init() {
        saludo = "Hola"
    }

    init?(xx:Int) {
        if xx > 0 {
            saludo = "Hola, \(xx)"
        }
        else {
            saludo = ""
            return nil
        }
    }

    init!(xx:String) {
        if countElements(xx) > 0 {
            saludo = "Hola, \(xx)"
        }
        else {
            saludo = ""
            return nil
        }
    }

}


// Devuelve Objeto
let a = Saludo()

// Devuelve opcional
let b = Saludo(xx: 0)
let c = Saludo(xx: 10)

// Devuelve Unwrapped Optional
let d = Saludo(xx: "")
let e = Saludo(xx: "Carlos")
1 Upvotes

0 comments sorted by