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를 쓰게되면 장점이 무엇인가요?
답변 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
41
1
Static 선언 시 에러 발생
0
46
1
클로저의 형태로 만들다
0
51
1
Function Types Error
0
43
1
안드로이드 기기 실행 오류
0
66
2
수강연장 가능할까요...
0
60
2
강의에서 사용된 안드로이드 스튜디오 버전을 알고싶어요.
0
63
2
SwiftData 미리보기 미적용
0
58
2
중괄호와 함수
0
60
2
기본 뷰 디자인이 강사님과 다릅니다.
0
57
2
Sorted, Filter, Map - UserViewModel 부분 오류 발생
0
144
1
ViewBuilder 강의 관련 질문입니다.
0
99
1
CoreData Array의 변화에 따른 SwiftUI View 변화 적용(with @Observable Macro)
0
242
2
init-deinit의 무한루핑을 벗어나는 방법이 궁금합니다.
1
210
2
Apple 공식 문서 보는법
0
360
2
5월 업데이트 예정이었던 , iOS17 컨텐츠 SwifData 업데이트 언제 되나요 ?
0
267
1
Spacer() 를 넣으니 예제처럼 SafeArea 확보가 안됩니다.
0
529
3
Local Notification 예제 문의
0
353
2
Local Notification 강의 편집오류 있어요
0
261
2
강의중 코드폴딩 단축키 (커맨트+옵션+왼쪽방향키)
0
227
2
코어데이터에 중복값 입력 방지
0
334
1
Combine 관련 질문드립니다.
0
263
1
강의 Weak Self 코드 실행시 오류에 대해
0
673
1
SwiftData가 Core Data를 대체하는지요?
0
2136
1





