일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Human interface guide
- HIG
- 리펙터링
- uitableview
- rxswift
- clean architecture
- Observable
- swiftUI
- uiscrollview
- Xcode
- ribs
- Clean Code
- 리팩토링
- map
- swift documentation
- 리펙토링
- Protocol
- Refactoring
- ios
- MVVM
- 애니메이션
- collectionview
- combine
- 스위프트
- UICollectionView
- tableView
- SWIFT
- 클린 코드
- RxCocoa
- UITextView
- Today
- Total
목록Optional (5)
김종권의 iOS 앱 개발 알아가기
* Synthetic Sugar: 결과는 같지만, 코드를 조금 더 단순하게 표현하는 것Optional 타입에 map 사용하기보통 map 함수를 배열과 같은곳에 원소를 하나씩 돌면서 변화를 줄 때 사용let items = [1,2,3,4,5]let itemsWithPlusOne = items.map { $0 + 1 }하지만 Optional 타입에도 map을 사용이 가능Swift 코드를 보면 Optional에 map 함수가 정의Optional인 타입의 메소드이며, 이 map을 사용하면 Optional을 벗겨낸 값을 map의 클로저로 전달한 인수로 들어가는 것@frozen public enum Optional : ExpressibleByNilLiteral { @inlinable public func ma..
1. map과 flatMap의 차이 - CollectionType에서 쓰임 CollectionType에서 접근: array와 같은 각 개별 요소에 접근하여 변화를 주는 것 만약 Element중에 Optional값이 있다면 flatMap은 unwrap을 해주고, map은 unwrap을 해주지 않음 단, flatMap은 deprecated되어 compactMap 사용 // 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value let c = [1, 2, Optional(3)] .flatMap { $0 } print(c) // [1, 2, 3] 2. map과 flatMap의 차이 ..
Optional에서의 map, flatMap 개념 보통 map, flatMap은 Collection Type에서 사용하지만, Optional 내부를 보면 함수로 map, flatMap이 존재 @frozen public enum Optional : ExpressibleByNilLiteral { case none case some(Wrapped) @inlinable public func map(_ transform: (Wrapped) throws -> U) rethrows -> U? @inlinable public func flatMap(_ transform: (Wrapped) throws -> U?) rethrows -> U? } map 개념 Optional 타입에 nil이 아닌 값이라면, Optional..
@unknown이란? enum타입을 접근하는 switch-case문에서 사용되는 키워드 추가적인 case가 생겼을 때, 기존에 switch-case문에서 해당 case를 선언하지 않고 @unknown default로 선언해 놓으면 사용하는 쪽에서 warning 메시지를 받아볼 수 있어 인지할 수 있게끔 하는 키워드 예시) switch문에서 case에 대한 모든 조건을 선언하면 컴파일 에러와 워닝이 발생하지 않고 정상적인 케이스 enum Color { case blue(name: String, alpha: CGFloat) case green(name: String, alpha: CGFloat) } let color = Color.blue(name: "blue", alpha: 0.5) switch color..
1. Optional 타입이란? - '?'로 표현 - nil(값이 없음) 타입을 정의하기 위한 수단 1 var myValue : Int = nil // error : 'nil' cannot initialize specified type 'Int' nil타입을 사용하기 위해서는 optional형태로 감싼 자료형으로 표현가능 Optional(nil), Optional(123) 1 2 3 4 var myValue : Int? = nil var optDic : [String:String]? // Dictionary 타입 Int("123") // 옵셔널 객체로 반환 Int("123") + 123 // error : 옵셔널 객체는 연산 불가 - 자료형 뒤에 '?' 붙이는 것 - 연산이 불가능 함 2. 옵셔널 해제 ..