옵셔널 체이닝?.
은 옵셔널 값에 안전하게 접근하는 연산자입니다.
옵셔널 값이 nil이 아닌 경우에만 프로퍼티나 메서드를 호출할 수 있도록 해줍니다.
let user: User? = ...
let name = user?.name // user가 nil이 아닌 경우에만 name 프로퍼티에 접근
if let user = user {
let name = user.name // 기존 방식
}
let button: UIButton? = ...
button?.setTitle("Click Me", for: .normal) // button이 nil이 아닌 경우에만 setTitle 메서드 호출
if let button = button {
button.setTitle("Click Me", for: .normal) // 기존 방식
}
let address = user?.address?.street // user, address 모두 nil이 아닌 경우에만 street 프로퍼티에 접근
if let user = user, let address = user.address {
let street = address.street // 기존 방식
}
let number: Int? = ...
let isEven = number?.isEven ?? false // number가 nil이면 false, 짝수면 true
if let number = number {
let isEven = number.isEven // 기존 방식
} else {
let isEven = false
}