Swift & iOS

[Swift] 옵셔널 체이닝이란?

hammii 2022. 6. 22. 10:53
728x90
반응형

옵셔널 체이닝이란?

옵셔널에 속해 있는 nil 일지도 모르는 프로퍼티, 메서드, 서브스크립션 등을 가져오거나 호출할 때 사용할 수 있는 일련의 과정

 

  • ?: 접근한 프로퍼티에 값은 nil이 될 수 있어서 항상 옵셔널에 감싸져 있다.
  • !: 옵셔널 프로퍼티를 강제 언래핑하여 접근하기 때문에 값이 옵셔널에 감싸져 있지 않다.

 

옵셔널 체이닝 예시

struct Developer {
    let name: String
}

struct University {
    let name: String
    var developer: Developer?
}

var developer = Developer(name: "hammii")
var university = University(name: "Gachon", developer: developer)

print(university.developer)    // Optional(__lldb_expr_1.Developer(name: "hammii"))
print(university.developer?.name)  // Optional("hammii")
print(university.developer!.name)  // hammii

developer?.name은 옵셔널에 감싸 져서 출력되고, developer!.name은 감싸 지지 않은 채로 출력되는 것을 확인할 수 있다.

 

옵셔널 바인딩 vs 옵셔널 체이닝

  • 옵셔널 바인딩은 추출하려는 값이 nil 인지 확인 후, 추출하는 방식이다.
  • 옵셔널 체이닝은 옵셔널을 반복 사용하여 옵셔널이 체인처럼 꼬리에 꼬리를 물고 있는 모양이다. 체인처럼 서로 이어져 있기 때문에 중간에 하나라도 값이 존재하지 않으면 (nil이면) 바로 nil을 반환한다.

 

 

출처: [패스트캠퍼스] 30개 프로젝트로 배우는 iOS 앱 개발 with Swift 초격차 패키지 Online.

 

728x90
반응형