iOS/Combine
PassthroughSubject
까칠코더
2023. 5. 31. 10:12
반응형
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()
반응형