일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ios
- swiftUI
- uitableview
- 애니메이션
- 스위프트
- Refactoring
- combine
- RxCocoa
- swift documentation
- 리팩토링
- 리펙토링
- UITextView
- uiscrollview
- Clean Code
- Protocol
- clean architecture
- MVVM
- tableView
- UICollectionView
- Observable
- rxswift
- 리펙터링
- map
- SWIFT
- ribs
- Xcode
- 클린 코드
- Human interface guide
- HIG
- collectionview
- Today
- Total
목록map (17)
김종권의 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..
일반적인 디코딩 방법 User라는 Codable 모델 준비 struct User: Codable { let id: String let name: String } JSONDecoder()를 사용하여 data형태로 변경 func getUserData() -> Observable { let user = User(id: "1", name: "jake") let encoder = JSONEncoder() guard let data = try? encoder.encode(user) else { return .empty() } return .just(data) } 디코딩 사용 JSONDecoder()를 사용하여 data를 디코딩하여 user모델로 변경 getUserData() .subscribe(onNext: { d..
UIImage RenderingMode 이란 UIImage의 값을 원본과 같이 색상이 있는것으로 표현할것인지, 원본 색상을 지운 형태만 가져갈것인지 선택 automatic: 컨텍스트의 기본 모드를 선택하며 지정해주지 않을 경우 디폴트 값 (보통 alwaysOriginal) alwaysOriginal: 원본 색상사용 alwaysTemplate: 원본 이미지의 색상을 없애고 tintColor만 남기는 옵션 @available(iOS 7.0, *) public enum RenderingMode : Int, @unchecked Sendable { case automatic = 0 case alwaysOriginal = 1 case alwaysTemplate = 2 } 사용 방법 UIImage의 withRende..
1. Higher order function (고차함수) 직접 구현 방법 - map, filter, reduce 2. Higher order function (고차함수) 직접 구현 방법 - flatMap, compactMap Map, Filter, Reduce map, filter, reduce는 higher order function (고차함수) higher order function이란? 다음 두 가지 중 하나에 해당 하나 이상의 함수를 인자로 받는 것 함수를 결과로 리턴하는것 Map 주어진 Element 하나하나씩 접근하여 클로저로 넘겨준 함수 (higher order function)에 맵핑하여 새로운 타입을 반환 [1,2,3].map { print($0) } 구현 방법 extension Arra..
목차) Combine - 목차 링크 Map 값 요소들을 하나씩 맵핑 (값에 변화를 주는 연산자) let publisher1 = [1, 2, 3].publisher let cancellable1 = publisher1 .map { $0 + 2 } .sink(receiveValue: { print($0) }) /* 3 4 5 */ tryMap map 클로저 내부에서 예외가 던져질 수 있는 연산이 있을때 사용 예외 처리하는 곳은 sink의 receiveCompletion에서 수행 enum SomeError: Error { case zero } let publisher2 = [2, 1, 0].publisher let cancellable2 = publisher2 .tryMap { guard $0 != 0 els..
Swift에서의 map의 역할 map, flatMap 둘 다 클로저가 Optional일 때와 non-Optional일때의 기능이 다르므로 주의 Optional일때의 기능 - 형변환 (flatMap은 형변환을 완료하고 unwrapping까지 수행) non-Optional일때의 기능 - 원소들에 하나하나씩 접근하여 변형을 주는 것 non-Optional일때의 map 예시) let someString = "123456" let newString = someString .map { String($0) + "a" } print(newString) // ["1a", "2a", "3a", "4a", "5a", "6a"] non-Optional일때의 flatMap 예시) flatMap의 역할 - Sequence의 배열..