[swift] 옵셔널 체이닝을 사용한 속성 접근

옵셔널 체이닝의 기본 개념

옵셔널 체이닝을 사용하여 속성에 접근할 때, 객체가 nil이라면 연산자 표현식 전체의 평가값은 nil이 됩니다. 즉, 객체가 nil인 경우에도 프로그램이 중단되지 않고 계속 실행될 수 있습니다.

let room = person?.home?.room?.number

위의 예시에서 person, home, room 중 어느 하나라도 nil이라면, number 속성에 접근하지 않아도 코드가 정상적으로 실행됩니다.

옵셔널 체이닝의 사용

아래의 예제는 person이라는 객체가 있고, home이라는 속성과 room이라는 속성이 연속적으로 옵셔널로 연결되어 있다고 가정합니다. 이때 옵셔널 체이닝을 사용하여 안전하게 number 속성에 접근할 수 있습니다.

if let roomNumber = person?.home?.room?.number {
    // 옵셔널 체이닝을 통해 안전하게 roomNumber에 접근
    print("Room number is \(roomNumber)")
} else {
    print("Unable to retrieve the room number")
}

위의 예제에서 person?.home?.room?.number가 nil이 아니라면, roomNumber에 해당 값이 할당되어 출력됩니다. 그렇지 않다면 “Unable to retrieve the room number”가 출력됩니다.

옵셔널 체이닝은 스위프트에서 안전하고 간편하게 옵셔널 값에 접근하기 위한 강력한 기능입니다.

참조: 스위프트 공식문서 - 옵셔널 체이닝