Just
: 단일 값을 내보내고 완료하는 Publisher
Sink
: 가장 간단한 형태의 Subscriber. 데이터 이벤트와 완료 이벤트를 처리하는 데 사용됨. 두 개의 클로저를 인자로 받음(하나는 데이터를 받았을 때 실행, 다른 하나는 완료 이벤트를 받았을 때 실행됨).
Assign
: 특정 객체의 KeyPath에 결과를 할당하는 Subscriber. 주로 UI 요소를 업데이트하는 데 사용. ex) 네트워크 요청의 결과를 텍스트 뷰의 텍스트 속성에 할당하는 작업.
import Foundation
import Combine
let just = Just(1000)
let subscription1 = just.sink { value in
print("Received Value: \(value)")
}
let arrayPublisher = [1, 3, 5, 7, 9].publisher
let subscription2 = arrayPublisher.sink { value in
print("Received Value: \(value)")
}
class MyClass {
var property: Int = 0 {
didSet {
print("Did set property to \(property)")
}
}
}
let object = MyClass()
let subscription3 = arrayPublisher.assign(to: \.property, on: object)
print("Final Value: \(object.property)")