[Swift] Combine - Publisher(Just) & Subscriber(Sink, Assign)

ko_hyeji·2024년 3월 21일
0

Combine

목록 보기
1/1

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)") // Received Value: 1000
}

let arrayPublisher = [1, 3, 5, 7, 9].publisher
let subscription2 = arrayPublisher.sink { value in
  print("Received Value: \(value)")
}
/*
Received Value: 1
Received Value: 3
Received Value: 5
Received Value: 7
Received Value: 9
*/

class MyClass {
  var property: Int = 0 {
    didSet {
      print("Did set property to \(property)")
    }
  }
}

let object = MyClass()
let subscription3 = arrayPublisher.assign(to: \.property, on: object)
/*
Did set property to 1
Did set property to 3
Did set property to 5
Did set property to 7
Did set property to 9
*/

print("Final Value: \(object.property)")
// Final Value: 9
profile
iOS Developer

0개의 댓글