inflearn logo
강의

Course

Instructor

[Lv.2] SwiftUI Intermediate - Completing an App with Core Data and SwiftData

Optional - If Let Guard

if let else 질문있습니다.

Resolved

220

leesmalleyes6251

1 asked

0

1.

if let text = displayText {
Text(displayText!)
} else {
ProgressView()
}


2.
if displayText != nil {

Text(displayText!)

} else{

ProgressView()

}

 


1번과 2번 두 코드의 차이를 모르겠습니다.

if let else를 쓰게되면 장점이 무엇인가요?

ios swift swiftui iphone-app

Answer 1

0

jacobko

안녕하세요 찌노 님.

먼저 1번 코드, 2번코드에서 Text(displayText!) 와 같이 !을 사용하게되면 현재 타입은 String? 으로 Optional 값인데 ! (느낌표)를 사용하면 강제 upwrapping 하게 됩니다. 그래서 Swift 에 강제로 String 이라고 타입을 지정하게 됩니다. (이 방법은 나중에 debugging 과정에서 error 발생되면 원인을 찾기 어렵기 때무에 ! 사용되신 lf let 또는 gurad 구문을 사용해서 안전하게 optional 값을 처리 하는게 좋습니다)

그리고 if let else 의 차이점 은 1번 코드에서는 if let text = displayText 를 하게 되면 displayText 가 nil 이 아닌 String 일경우에 text 라는 변수에 displayText 가 할당되어서 사용하기 때문에 Optional 처리를 하고 else 일때는 (값이 nil 일경우) 에 따로 처리 할 수 있다는것에 장점이 있습니다.

질문하신, 1번과 2번의 차이는 1번은 if let else 로 optional unwrapping 이 되었다는것이고 2번은 단순히 nil 이 아닐경우에 출력되도록 하는 점이 다르다고 할 수 있습니다.

 

질문주셔서 감사합니다

Jacob

수강 기간 연장 문의

0

28

1

수강연장부탁드려도될까요..

0

42

2

Combine Playground 에서 실행 시

0

57

2

70강 - 글로벌 액터로 격리된 Protocol 을 extension 에서 conform 시 타입 본체의 격리 수준 질문

0

42

1

searchable이 화면 하단에 위치해요

0

62

2

Drawing Cycle 관련 질문

0

72

1

앱 제작 시 주로 코드로 작성하시는 이유가 있을까요?

0

95

2

델리게이트 패턴 관련 질문

0

66

2

ios 애드몹 광고

0

134

2

수강 기간 연장 부탁드릴 수 있을까요?

0

61

1

Sorted, Filter, Map - UserViewModel 부분 오류 발생

0

102

1

ViewBuilder 강의 관련 질문입니다.

0

80

1

CoreData Array의 변화에 따른 SwiftUI View 변화 적용(with @Observable Macro)

0

205

2

init-deinit의 무한루핑을 벗어나는 방법이 궁금합니다.

1

167

2

Apple 공식 문서 보는법

0

325

2

5월 업데이트 예정이었던 , iOS17 컨텐츠 SwifData 업데이트 언제 되나요 ?

0

252

1

Spacer() 를 넣으니 예제처럼 SafeArea 확보가 안됩니다.

0

490

3

Local Notification 예제 문의

0

320

2

Local Notification 강의 편집오류 있어요

0

236

2

강의중 코드폴딩 단축키 (커맨트+옵션+왼쪽방향키)

0

208

2

코어데이터에 중복값 입력 방지

0

313

1

Combine 관련 질문드립니다.

0

244

1

강의 Weak Self 코드 실행시 오류에 대해

0

653

1

SwiftData가 Core Data를 대체하는지요?

0

2111

1