Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- combine
- Protocol
- 리펙터링
- tableView
- 클린 코드
- UICollectionView
- clean architecture
- uitableview
- map
- rxswift
- RxCocoa
- 스위프트
- 리팩토링
- swiftUI
- Human interface guide
- UITextView
- ribs
- Observable
- Clean Code
- uiscrollview
- MVVM
- Xcode
- 리펙토링
- Refactoring
- 애니메이션
- HIG
- swift documentation
- SWIFT
- ios
- collectionview
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] for문에서 Optional 간결하게 unwrap하는방법 (for문 unwrap) 본문
iOS 응용 (swift)
[iOS - swift] for문에서 Optional 간결하게 unwrap하는방법 (for문 unwrap)
jake-kim 2024. 1. 13. 22:38Optional 타입
- Optional 타입은 제네릭스를 받고, 그 제네릭스는 Optional 안에 감싼 값을 의미
- Optional 타입은 enum이며, 2개의 case가 존재
- none: 값이 없는 case
- some(Wrapped): 값이 있는 case
enum Optional<Wrapped>: ExpressibleByNilLiteral {
case none
case some(Wrapped)
}
- 조건문에서 unwrap 방법
- .some으로 접근
- 변수?로 접근
let optionalString = Optional<String>("jake")
switch optionalString {
case .none:
print("this is nil")
case let .some(value):
print("some value = ", value)
}
switch optionalString {
case .none:
print("this is nil")
case let unwrappedValue?:
print("unwrappedValue = \(unwrappedValue)")
}
for문에서 unwrap 방법
- 보통 for-in안에서 if문을 아래처럼 사용
let arr: [Optional] = [Optional(1),2,3,4]
for val in arr {
if let val {
print(val)
}
}
- for문 + case를 사용하면 간결하게 표현이 가능
for case let val? in arr {
print(val)
}
(혹은 .some으로도 가능)
for case let .some(val) in arr {
print(val)
}
'iOS 응용 (swift)' 카테고리의 다른 글
[iOS - swift] Optional의 map, flatMap 함수 (0) | 2024.01.16 |
---|---|
[iOS - swift] UIKit framework 저장 위치, Headers, Modules, UIKit.tbd 개념 (1) | 2024.01.15 |
[iOS - swift] 모달 화면 전환 overCurrentContext vs currentContext, fullScreen vs overFullScreen (1) | 2024.01.04 |
[iOS - swift] 디버깅 UserDefaults 간편 세팅 방법 (Arguments Passed On Launch) (21) | 2024.01.03 |
[iOS - swift] 네임스페이스 정의 방법 (enum, extension) (19) | 2024.01.02 |
Comments