일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Operater
- typeorm
- Operators
- Creating Operators
- NullObject
- graphql
- swift6
- SWIFT
- @Binding
- Xcode
- IOS
- nestjs
- SwiftUI
- URL(string:)
- ios14
- @State
- RFC1738/1808
- init
- subject
- NavigationLink
- RxCocoa
- @Environment
- vim
- Bug
- nonisolated
- operator
- dismiss
- @EnvironmentObject
- RxSwift
- init?
- Today
- Total
목록전체 글 (147)
Tunko Development Diary
PublishRelay 는 PublishSubject를 wrapping BehaviorRelay 는 BehaviorRelay를 wrapping ReplayRelay 는 ReplaySubject를 wrapping 합니다. ReplayRelay는 RxSwift6 버전에서 추가 되었습니다. 여기서 wrapping은 감싸다 라는 사전적 의미입니다. 기존 사용되는 방법에서 추가하거나 기능을 제외시키거나 할대 사용되는 프로그래밍 방식입니다. Subject를 wrapping하면서 Relay가 된 기능의 대표적인 차이점은 Completed, Error 이벤트를 방출하지 않는다는 것입니다. 종료 되지 않기때문에 주로 UI이벤트를 처리할때 사용합니다. Relay는 UI이벤트를 처리할때 사용한다 했듯이 RxCocoa 라이브..
AsyncSubject 는 이벤트가 전달되는 시점이 다릅니다. 구독한 시점에 이벤트가 전달되는것이 아닌 Complite 이벤트가 전달되면 가장 마지막 이벤트가 전달됩니다. let disposeBag = DisposeBag() enum MyError: Error { case error } let subject = AsyncSubject() subject .subscribe { print($0) } .disposed(by: disposeBag) subject.onNext(1) subject.onNext(2) subject.onNext(3) subject.onCompleted() //subject.onError(MyError.error) 출력 next(3) completed 만약 onCompleted가 아닌 ..
ReactiveX - Subject ReplaySubject는 create메서드를 통해 생성합니다. 생성시 이벤트의 버퍼의 크기를 지정합니다. 버퍼는 메모리에 할당하기 때문에 버퍼크기를 잘 고려해야 합니다. 낭비는 없도록 해줍니다. let disposeBag = DisposeBag() enum MyError: Error { case error } let replaySubject = ReplaySubject.create(bufferSize: 5) (1...10).forEach { replaySubject.onNext($0) } replaySubject.subscribe{ print("next Event : \\($0)")} .disposed(by: disposeBag) 출력 next Event : next..
BehaviorSubject는 기능상으로 PublishSubject와 큰 차이가 없습니다. 하지만 생성 및 구독을 할때 차이가 있습니다. 바로 예제 코드와 로그를 통해 알아보겠습니다. let disposeBag = DisposeBag() enum MyError: Error { case error } let publishSubject = PublishSubject() publishSubject.subscribe {print("publishSubject : \\($0)")} publishSubject.disposed(by: disposeBag) let behaviorSubject = BehaviorSubject(value: 1) behaviorSubject.subscribe {print("behaviorSu..
ReactiveX - Subject PublishSubject의 가장큰 특징은 옵저버의 구독 이후에 이벤트를 받을 수 있습니다. let disposeBag = DisposeBag() enum PublishSubjectError: Error { case error } // String타입을 받는 PublishSubject 생성 let subject = PublishSubject() subject.onNext("구독전") 먼저 subject는 옵저버와 옵저버블의 기능을 동시에 가지고 있습니다. 그래서 이벤트를 넘겨줄수 있습니다. 위 코드처럼 구독전에 subject에서 onNext 이벤트를 넘기면 아무런 이벤트도 받을 수 없습니다. 이후에 구독 코드를 추가해 줍니다. let subject = PublishSu..