본문 바로가기
🍎iOS프로그래밍/겨울방학 특강

Swift문법 - 옵셔널 체이닝

by 둥둥동동# 2022. 1. 7.
728x90

순서

옵셔널 체이닝의 목적

옵셔널 체이닝

 

옵셔널체이닝의 목적

 

옵셔널체이닝의 목적은 코드의 간결함을 위해서 입니다

옵서널타입의 값이 프로퍼티 혹은 메서드를 가질 때 연속적으로 붙여 쓸 수 있습니다

if let a = bb.abc{
    if let x = a.xxx{
        print("\(x.yy)")
    }
}
//동일
print("\(bb.abc?.xxx?.yy)")
cs

!을 쓰지 않는 이유는 nil값을 언래핑하는 충돌 가능성이 있기 때문입니다

nil값을 언래핑할 수 없으니 안전한 ?을 사용합니다

 

옵셔널체이닝 중간에 리턴값으로 nil이 나와도 오류를 발생시키지 않습니다

또한 마지막에 얻는 값이 일반자료형리턴으로 정의되어 있어도 옵셔널타입으로 반환됩니다

 

 

 

옵셔널 체이닝

 

class Man{
    var name: String?
    var weight : Double?
    var nation:nation()
}
class nation {
    var korea = korea()
    var usa : usa?
}
 
class korea{
    var continent = "asia"
    var lang = "korean"
}
 
class usa{
    var continent = "america"
    var lang = "english"
}
cs

 

 

옵셔널체이닝을 사용하면 더욱 간결한 코드를 작성할 수 있습니다

또한 리턴되는 값은 옵셔널타입인것을 확인할 수 있었습니다

let Kim=Man()
 
if let a = Kim.nation{
    if let b = a.korea{
        print("\(b.lang)"//korea
    }
}
print("\(Kim.nation?.korea?.lang)")//optional("korean")
cs

 

 

 

 

 

참고자료

한성현 교수님의 유튜브 강의

https://www.youtube.com/channel/UCM8wseo6DkA-D7yGlCrcrwA

 

728x90

댓글