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
반응형