[swift] 옵셔널 체이닝을 사용한 옵셔널 타입 반환

앱을 개발하다보면 옵셔널 타입을 다루는 경우가 많습니다. 옵셔널 체이닝(optional chaining)을 사용하면 옵셔널이 연속으로 연결된 객체의 프로퍼티나 메소드에 접근할 때 간편하게 처리할 수 있습니다. 이때 옵셔널 체이닝을 통해 반환되는 값 또한 옵셔널 타입일 수 있습니다.

옵셔널 체이닝을 통해 옵셔널 값을 반환하는 방법에 대해 알아보겠습니다.

class Person {
    var residence: Residence?
}

class Residence {
    var address: Address?
}

class Address {
    var buildingNumber: String
    init(buildingNumber: String) {
        self.buildingNumber = buildingNumber
    }
}

let person = Person()
if let buildingNumber = person.residence?.address?.buildingNumber {
    print("주소 번호: \(buildingNumber)")
} else {
    print("주소 정보를 찾을 수 없습니다.")
}

위의 예제 코드에서 person.residence?.address?.buildingNumber?를 사용하여 옵셔널 체이닝을 하였습니다. 만약 주소 정보가 없는 경우(nil), 옵셔널 체이닝을 통해 접근한 값도 nil을 반환하게 됩니다. 이때 if let 구문을 사용하여 옵셔널 값을 안전하게 처리할 수 있습니다.

옵셔널 체이닝을 통해 옵셔널 값이 반환되는 상황에서는 해당 값이 옵셔널 타입으로 처리됩니다. 따라서 옵셔널 값으로 반환된 값을 사용할 때는 옵셔널 바인딩 등의 방법을 통해 안전하게 처리해주어야 합니다.

이렇게 옵셔널 체이닝을 통해 옵셔널 값이 연속으로 반환되는 경우 각 단계의 옵셔널 처리에 주의하여 안전하게 값을 다루도록 합니다.

참고 자료