본문 바로가기

iOS/Swift

[Swift] Optional 정리

Optional이란?

 

값이 있을수도 있고 없을수도 있는 알수없는 상태를 Optional 이라 합니다.

var someVariable : Int? = nil

if someVariable == nil {
    someVariable = 90
}

print("someVariable wrap전 ::",someVariable) //Optional(90)

 

 

 

UnWrapping

감싸져 있는 것을 벗기는 것  -> Optional(90)을 벗긴다

 

 

1. 

someVariable 이 비어있으면 값이 없으면 기본값으로 이것을 넣겠다 설정

somVariable = nil
let myValue = someVariable ?? 10
print("myValue : \(myValue) ")

 

2.  

someVariable의 값이 있다면 otherVariable에 사용하겠다 그럼 Optional이 아닌 값을 가져오게 됩니다

 

if let otherVariable = someVariable {
    print("unWrapping \(otherVariable)")
}else{
    print("값이 없음")
}

 

3.

guard를 통해 위의 let 처럼 값이 없으면 return 합니다

func unwrap(parameter: Int?){
    print("unwrap() called")
    // 값이 없으면 리턴 한다
    guard let unWrappedParam = parameter else{
        return
    }
    print("unWrappedParam ::  \(unWrappedParam)")
}

 

4.

강제추출

주의 할점은 무조건 변수가 있는 상황에서만 사용해야 합니다. 강제로 unWrap하기 때문에 값이 없는 nil인 경우에 컴파일 오류나 비정상 종료가 생길수 있습니다

var someVariable : Int? = nil

if someVariable == nil {
    someVariable = 90
}

print("someVariable wrap전 ::",someVariable) //Optional(90)

print(somVariable!) // 90

 

 

 

 

 

'iOS > Swift' 카테고리의 다른 글

[iOS][Swift] App LifeCycle - 앱 생명주기  (0) 2024.05.24
[Swift] Extensions (확장) 이란  (1) 2024.04.12
[Swift] unrecognized selector sent to instance  (0) 2023.06.02
[Swift] Auto Layout 이란  (2) 2023.05.17
[Swift] Cording_Test 준비  (0) 2023.01.30