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 | 31 |
Tags
- uiscrollview
- 리팩토링
- Protocol
- Refactoring
- Observable
- ios
- scrollview
- MVVM
- combine
- Xcode
- map
- rxswift
- swiftUI
- 애니메이션
- UITextView
- uitableview
- UICollectionView
- tableView
- SWIFT
- collectionview
- swift documentation
- Clean Code
- Human interface guide
- HIG
- ribs
- clean architecture
- RxCocoa
- 클린 코드
- 스위프트
- 리펙토링
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