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 |