μ λ€λ¦ ν΄λμ€ | νμ Subscriberμκ² μμλ₯Ό μ리λ Subject
μ‘΄μ¬νλ λͺ
λ Ήν μ½λλ₯Ό Combine λͺ¨λΈλ‘ λ§μ΄κ·Έλ μ΄μ
νκΈ° μν΄ νΈλ¦¬νκ² μ¬μ©λ μ μλ€.
CurrentValueSubjectμλ λ€λ₯΄κ² μ΄κΈ°κ°μ κ°μ§ μμΌλ©°, κ°μ₯ μ΅κ·Όμ λ°νλ μμμ λν λ²νΌλ₯Ό μ μ§νμ§ μλλ€. νμ¬ Subjectκ° κ°μ§κ³ μλ κ°μ μ κ·Όν μλ μλ€.
λ κ°μ μ λ€λ¦ νμ
μ κ°μ§λ€. νλλ κ°μ νμ
μ λνλ΄λ©°, λ€λ₯Έ νλλ μλ¬μ νμ
μ λνλΈλ€. μλ¬μ νμ
μ Error νλ‘ν μ½μ μ±νν΄μΌ νλ€.
let subject = PassthroughSubject<Void, Never>()
subject
.sink(receiveCompletion: { completion in
switch completion {
case .failure:
print("Combine PassthroughSubject Error")
case .finished:
print("Combine PassthroughSubject Finish")
}
}, receiveValue: {
print("Combine PassthroughSubject")
})
.store(in: &cancellables)
subject.send(Void())
// Combine PassthroughSubject
subject.send(Void())λ₯Ό νΈμΆν μμ μ Subjectμ κ°μ μ λ¬νμμΌλ―λ‘ κ°μ λ°μ κ²μ λν ν΄λ‘μ κ° μ€νλλ€.
PublishSubjectλ₯Ό μ¬μ©νμ¬ κ΅¬νν μ μλ€.
onNext(_:) λ©μλλ₯Ό μ¬μ©νμ¬ Subjectμ κ°μ μ λ¬νλ€.
MutablePropertyλ₯Ό μ¬μ©νκ³ signal νλ‘νΌν°λ₯Ό ν΅ν΄ Signalμ λ§λ€μ΄ ꡬνν μ μλ€.
value νλ‘νΌν°μ κ°μ ν λΉνμ¬ Propertyμ κ°μ μ λ¬νλ€.
MutablePropertyλ‘λΆν° producer νλ‘νΌν°λ₯Ό ν΅ν΄ SignalProducerλ₯Ό λ§λ€μ΄ μ¬μ©νλ€λ©΄, MutablePropertyμ μ΄κΈ°κ°μ΄ νλ₯΄κ² λλ―λ‘ PassthroughSubjectμ λμμ ꡬνν μ μλ€.
μ€μ½νλ₯Ό λ²μ΄λ λ propertyκ° ν΄μ λμ΄ Signalλ μ’
λ£νλ λͺ¨μ΅μ 보μ¬μ€λ€.
ReactiveX - Subject