iOS/Swift이론

Swift)iOS프로그래밍 : failable initializer 예제

Sweetft 2021. 10. 24. 12:31
class Dog{
    var age : Int 
    var height : Double
    func display(){
        print("나이=\(age), 키=\(height)")
    }
    init?(age: Int, height: Double){
        if age <= 0 || height <= 0 {
            return nil
        }
        else {
            self.age = age
            self.height = height
        }
    }
} 

var mango : Dog? = Dog(age:1, height:3.5) 
//1-1.옵셔널 형으로 선언
if let mango1 = mango { //1-2.옵셔널 바인딩
mango1.display()
}


//2.인스턴스 생성과 동시에 옵셔널 바인딩
if let poppy = Dog(age:5, height:10.2) {
    poppy.display() //나이=5, 키=10.2
}

//3.인스턴스 생성하면서 바로 강제 언래핑
var nala : Dog = (age:5, height:0)!
nala.display() //결과X

//4.옵셔널 인스턴스를 사용시 강제 언래핑
var daisy : Dog? = Dog(age:-1, height:53.2)
daisy!.display() //결과X

 

참고 : iOS프로그래밍기초(21년-2학기) 한성현 교수님 강의 및 강의 자료 변형, 요약