[Lv.2] SwiftUI Intermediate - Completing an App with Core Data and SwiftData
Optional - If Let Guard
if let else 질문있습니다.
1.
if let text = displayText {
Text(displayText!)
} else {
ProgressView()
}
2.if displayText != nil {
Text(displayText!)
} else{
ProgressView()
}
1번과 2번 두 코드의 차이를 모르겠습니다.
if let else를 쓰게되면 장점이 무엇인가요?
Answer 1
0
안녕하세요 찌노 님.
먼저 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

