일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- tableView
- uitableview
- Clean Code
- clean architecture
- rxswift
- 리펙터링
- 리팩토링
- UICollectionView
- Human interface guide
- SWIFT
- Xcode
- Refactoring
- Observable
- 애니메이션
- 리펙토링
- collectionview
- uiscrollview
- MVVM
- combine
- swiftUI
- ios
- RxCocoa
- 스위프트
- 클린 코드
- HIG
- ribs
- UITextView
- map
- swift documentation
- Protocol
- Today
- Total
목록Filter (6)
김종권의 iOS 앱 개발 알아가기
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 - 목차 링크 Filtering 연산자 filter // filter [1,2,3].publisher .filter { $0 % 2 == 0 } .sink(receiveValue: { print($0) }) .store(in: &cancellable) // 2 tryFilter 특정 조건에 해당하면 Error를 throw throw를 처리하는 곳은 .sink의 receiveCompletion에서 수행 주의할점은 throw가 발생하면 해당 스트림은 해제되기 때문에 3은 방출되지 않음 [1,2,-1,3].publisher .tryFilter { if $0 == -1 { throw MyError.a } else { return true } } .sink( receiveCompletion..
KeyPath란? 특정 루트 유형(class 타입, struct 타입)에서 value type으로의 참조를 의미 Property의 reference값을 의미 (c에서의 포인트 개념과 유사) * 구체적인 KeyPath, KVC, KVO 개념은 다음 포스팅 글 참고 KeyPath 사용 방법 KeyPath 참조 얻어내는 방법 let userNameKeyPath = \\User.name print(userNameKeyPath) // Swift.KeyPath KeyPath 참조를 통해 값에 접근하는 방법 let userNameKeyPath = \\User.name print(userNameKeyPath) // Swift.KeyPath let user1 = User(name: "jake", email: "a@a.c..
알고리즘 핵심: https://ios-development.tistory.com/525 swift로 알고리즘 접근 코드의 간결화를 위해 강제 unwraping 사용 string타입에서 특정 character접근 시 [Charactor] or [String] 타입으로 변환하여 효율적으로 접근 String타입에서 특정 character 접근 시 O(N) Array타입은 random access O(1) String의 for문에서 value값은 String.Element형 :(for문 안에서 Int형으로 변경하고 싶은 경우, String으로 먼저 변형) swift는 Array, Set, Dictionary 세 가지 collection을 제공하므로 나머지 세 가지에 대해 어떻게 쓸것인지 미리 고민 Heap: S..
1. 구독을 공유해서 사용하는 방법 (Sharing subscriptions) 구독을 공유하는 주체 : Observable 1) 공유해서 사용하지 않은 경우의 문제점 여러 곳에서 subscribe()를 사용한다면 동기화에 문제 발생 var start = 0 func getStartNumber() -> Int { start += 1 return start } let numbers = Observable.create { observer in let start = self.getStartNumber() observer.onNext(start) observer.onNext(start+1) observer.onNext(start+2) observer.onCompleted() return Disposables.cr..
1. 고차함수(Higher-order function)란? 하나 이상의 함수를 인자로 취하거나 함수를 반환하는 함수를 의미 - higher order function: 함수 내부에서 일어나는 특성 (함수를 인수로 받는 것, 함수를 리턴하는 것) - first class: 함수 외부에서 일어나는 특성 (함수를 변수에 대입 가능한 것) ex) 배열에서 각 원소들을 접근하여 새로운 값을 생성하거나(map), 조건을 정하여 그 조건에 맞는 원소만 접근하거나(filter), 배열을 하나의 값으로 표현하거나(reduce) 2. swift의 대표적인 고차함수 1) Map 콜렉션 내부의 기존 데이터를 변형(transform)하여 새로운 콜렉션 생성 * 아래 예제를 map을 이용해서 for문 없이 표현하면? let ar..