만약 a 객체 안에 옵셔널인 b객체가 있고, b객체 안에 또 옵셔널인 c객체가 있다면 어떡해야할까.
struct Friend{
let person: Person?
}
struct Person{
let name: String
let pet: Pet?
}
struct Pet{
let name: String?
let kind: String
}
통상적으로 생각하면 다음과 같이 if let
을 반복하면 된다.
if let person = friend.person{
if let pet = person.pet{
if let petName = pet.name{
...
}
}
}
if let person = friend.person,
let pet = person.ppet,
let petName = pet.name{
...
}
// 하나라도 nil이면 else 실행
if let petName = friend.person?.pet?.name{
...
} else{
...
}
func getPetName(){
guard let petName = friend.person?.pet?.name{
print("petName : 없음")
return
} else {
...
}
}