반응형
PassthroughSubject는 값을 발생시키고 구독자(subscriber)에게 전달하는 데 사용되며, Subject 프로토콜을 준수하며, 데이터 흐름의 시작점이 될 수 있습니다.
또한 PassthroughSubject는 데이터를 방출(emit)할 수 있으며, 이 데이터는 구독자에게 전달됩니다. 구독자는 PassthroughSubject를 구독(subscribe)하여 값을 받아올 수 있습니다. 구독자는 sink(subscriber)를 통해 데이터를 수신하고, 값을 처리하는 클로저를 제공할 수 있습니다.
import Combine
class ViewModel {
let subject = PassthroughSubject<String, Never>()
func fetchData() {
// 네트워크 요청 등 비동기 작업을 수행하고, 데이터를 subject로 emit합니다.
let data = "Hello, World!"
subject.send(data)
}
}
let viewModel = ViewModel()
let cancellable = viewModel.subject.sink { value in
print(value)
}
viewModel.fetchData() // "Hello, World!" 출력
// PassthroughSubject는 값을 발생시키면 구독자에게 전달하므로, 메모리 누수를 방지하기 위해 적절히 해제해야 합니다.
cancellable.cancel()
반응형
'iOS > Combine' 카테고리의 다른 글
Background, Foreground 진입시 처리 (0) | 2024.01.04 |
---|---|
PassthroughSubject vs CurrentValueSubject (1) | 2023.12.01 |
Throttle과 Debounce의 차이점 (0) | 2023.05.31 |
사용자 정의(custom) 구독자(subscriber) 만들기 (0) | 2023.05.10 |
Combine with Timer (0) | 2023.05.09 |
Combine과 Property Wrapper를 이용해서 UserDefault 쉽게 사용하기 (0) | 2023.05.08 |
UIKit(UIControl) + Combine을 위한 Extension (0) | 2022.11.09 |
MVVM with Combine Tutorial for iOS (1) | 2019.09.05 |