본문 바로가기
language/Swift

Swift 스위프트 - 옵셔널 응용편(unwrapping unwrap)

by JongDroid 2022. 1. 13.

옵셔널을 사용할때 아무런 제한 없이 그냥 사용할 수 있으면 정말 좋겠지만,

 

IOS 프로그래밍을 하다보면 수행하는 사칙연산, 출력, 색상지정 등 과 같은 수 많은 로직을 작성할때 

 

옵셔널을 *언랩 하지 않으면 에러를 뱉는다.

 

 

아주 정말 간단한 사칙연산이다. 인트형 옵셔널 기호를 사용하였고, 언랩핑 작업을 해주지 않아서 에러가 발생하였다.

 

언랩(언랩핑) 은 무엇일까?

- 옵셔널 상태를 어디서든 사용할 수 있게 풀어주는 것을 말하며 쉽게 비유하면 스마트폰 잠금 해제를 하는 느낌인 것 같다.

- 해당 포스팅에서는 언랩 두 가지 방법을 알아볼 예정이다.

 

 

1. 언랩 첫번째 방법 

- ( ?? 0)  키워드를 사용한다.

- 해당 키워드를 사용하면 값이 있는 상태라면 해당 값을 그대로 가져가고, nil 이라면 0을 가져간다. 

해당 예제를 보면 더욱 쉽ㅈ게 이해할 수 있을 것이다. (변수명은 대충 만들었습니다..)

 

num1은 값이 있고, num2는 값이 없다.

따라서 값이 있는 num1은 그대로 10을 가져가는 반면, 값이 없는 num2는 0을 취하는 것을 볼 수 있다. [중요]

 

2. 언랩 두번째 방법 (Force Unwrap)

- ! 키워드를 사용한다.

- 이 친구는 정말 주의해서 사용해야 한다. 잘못사용하면 앱이 크래쉬남 (비정상종료)

- 이 친구는 값이 있다는 확신이 있을때만 사용해야 한다. 값이 없는 상태일때 사용하면 == 크래쉬 

(주의하고 또 주의하자)

 

값이 있는 친구를 언랩할때는 문제가 없다. 

값이 없는 친구를 언랩하면 무슨일이 발생할까?

 

 

nil은 언랩할 수 없다는 말과 함께 심각한 에러를 뱉는다. 

두번째 방법을 사용할때는 반드시 값이 있는 경우만 사용할 수 있다. 주의하자 

 

 

옵셔널 상태를 언랩하는 방법 2가지 끝.

댓글