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
- ribs
- uiscrollview
- clean architecture
- map
- HIG
- 스위프트
- 리펙터링
- uitableview
- MVVM
- Human interface guide
- ios
- SWIFT
- collectionview
- Refactoring
- swift documentation
- combine
- 리팩토링
- UICollectionView
- swiftUI
- 리펙토링
- 클린 코드
- 애니메이션
- Clean Code
- RxCocoa
- tableView
- Xcode
- UITextView
- rxswift
- Observable
- Protocol
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[RxSwift] 7. share 본문
share
* 원래 Observable은 subscribe될 때만 create클로저를 호출하여 Observable을 생성 (== subscribe한 횟수만큼 새로운 시퀀스 생성)
// API를 요청, 결과를 반환하는 시퀀스라 가정
let networkRequestAPI = Observable.of(100)
let result = requestMoreButton.rx.tap
.flatMap { networkRequestAPI }
result
.map { $0 > 0 }
.bind(to: requestMoreButton.rx.isHidden)
.disposed(by: bag)
result
.map { "Count:\($0)" }
.bind(to: remainCountLabel.rx.text)
.disposed(by: disposeBag)
share() 연산자를 사용하면 Subscribe()할때마다 새로운 Observable 시퀀스가 생성되지 않고, 하나의 시퀀스에서 방출되는 아이템을 공유해 사용
let result = requestMoreButton.rx.tap
.flatMap { networkRequestAPI }
.share()
'RxSwift > RxSwift 응용' 카테고리의 다른 글
[iOS - swift] Reactive Extension 사용 방법, .rx 네임 스페이스, RxSwift6에서 @dynamicMemberLookup을 이용한 rx 접근 (5) | 2022.01.11 |
---|---|
[RxSwift] 8. Observable의 구조 (ObservableConvertibleType, ObservableType, Observable, Event) (0) | 2020.09.27 |
[RxSwift] 6. merge, combineLatest, withLatestFrom, zip, concat, (0) | 2020.09.27 |
[RxSwift] 5. throttle, debounce (0) | 2020.09.27 |
[RxSwift] 4. distinctUntilChanged (0) | 2020.09.27 |
Comments