inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

UIKit - iOS14 실무 가이드 <iOS앱 진짜 개발자 되기>

Optionals_3

if 언래핑에 대해 질문이 있습니다

213

송종환

작성한 질문수 2

1

var a: Int? = 10

 

if a! = nil {

print(a)

}

if let hasNumber = a

print(hasNumber)

}

여기서 변수a는 nil값을 받을수있도록 ? 옵셔널되어있고

아래에서 if문을 통해 nil값이 아닐때만 출력되도록 설정됬다고 생각하는데, 이 자체는 그럼 옵션을 제한한 언래핑이 아닌건가요?

아래에서 if let을 활용해서 다시 언래핑해주는 이유가 궁금합니다.

그리고 if let 이라는 함수자체가 언래핑을 의미한다고 생각하면 되는건지도 궁금합니다!

 

if언래핑 ios swift

답변 1

1

iOS Developer - 이정

if a != nil {

 print(a!)

}

제가 설명드린 문법은 위와 같고

if를 사용한 이유는 force unwrapping을 사용할 때 if로 nil체크를 하면 안전하다를 보여주기 위한 부분이라고 생각하시면 됩니다.

 

그리고

unwrapping하면  변수a 가  Int타입으로 바뀌는게 아닙니다.

그냥 Int타입으로 된 새로운 값이 새로 생성되서 그걸 사용할 수 있게 되는 것입니다.

그러므로 a는 타입이 변하지 않고 계속 옵셔널Int입니다.

 

if let은 unwrapping해서 그냥 Int타입의 값을 가져올 수 있는지 없는지 체크하는 기능중에 하나 입니다.

가져올 수 있다면 hasNumber에 값이 들어오고 밑에 코드블럭이 실행되고

가져올 수 없는 nil상태면  if let 구문은 아예 실행되지 않습니다.

 

 

 

0

송종환

답변 감사합니다!

0

송종환

답변 감사합니다!

0

송종환

답변 감사합니다!

클로저내의 return 질문

0

53

1

movieapp 3 46분 실행이 안돼요ㅜㅜ

0

187

2

missing constraints 에러

0

220

1

콘솔창 print 내용 안 뜸

0

217

1

키보드 떠 있는 상태 만들기

0

310

1

pageViewController 호출시점

0

372

2

20:01 쯤에서

0

289

1

WebView와 이니시스 결제

0

607

1

movie App 영상이 안나오고 소리만 나옵니다.

0

577

2

to do app 강의중에

0

255

1

UIKit 요소에 대하여...

0

314

1

기업 내부용 앱을 만들어 설치하고 싶다면?

0

598

1

Break Point 사용법

0

405

2

클론 프로젝트 코드 요청드립니다.

0

320

1

extension UIColor

0

248

1

TintColor란 정확히 무엇인가요?

0

647

1

computedProperty 와 func 는 각각 언제 사용하면 좋나요?

0

256

2

force cast 질문입니다.

0

212

1

Optional 관련 질문드립니다.

0

252

1

ToDoApp에서 셀간의 간격 설정에 관한 질문

0

327

1

45도 회전의 경우

0

713

2

파일 여는 방법에 대해서 질문 드립니다

0

232

1

navigation backgrouncolor가 파스텔톤으로 적용되지 않는 건에 대하여

0

318

2

To do App 질문있습니다.

0

215

1