Optional.Publisher

ꡬ쑰체 | μ˜΅μ…”λ„μ΄ 값을 가지고 있으면, 각 Subscriberμ—κ²Œ μ •ν™•νžˆ ν•œ 번 μ˜΅μ…”λ„ 값을 λ°œν–‰ν•˜λŠ” Combine Publisher

μ΄λ‹ˆμ…œλΌμ΄μ €λŠ” ν•œ 개의 인자λ₯Ό λ°›λŠ”λ‹€.

  • output : 각 Subscriberμ—κ²Œ 전달할 μ˜΅μ…”λ„ κ°’

  • μ˜΅μ…”λ„ 값이 nil이 μ•„λ‹ˆλΌλ©΄ μ˜΅μ…”λ„μ΄ 벗겨진 값을 μ „λ‹¬ν•˜κ³  μ’…λ£Œν•œλ‹€.

  • μ˜΅μ…”λ„ 값이 nil이라면 값을 μ „λ‹¬ν•˜μ§€ μ•Šκ³  λŒ€μ‹  μ •μƒμ μœΌλ‘œ μ’…λ£Œν•œλ‹€.

// 1
Optional.Publisher(Void())
  .sink(receiveCompletion: { completion in
    switch completion {
    case .failure:
      print("Combine Optional Error")
    case .finished:
      print("Combine Optional Finish")
    }
  }, receiveValue: {
    print("Combine Optional")
  })
  .store(in: &cancellables)

// Combine Optional
// Combine Optional Finish

// 2
Optional.Publisher(nil)
  .sink(receiveCompletion: { completion in
    switch completion {
    case .failure:
      print("Combine Optional Error")
    case .finished:
      print("Combine Optional Finish")
    }
  }, receiveValue: {
    print("Combine Optional")
  })
  .store(in: &cancellables)

// Combine Optional Finish

1의 μ½”λ“œλŠ” 인자둜 nil이 μ•„λ‹Œ λ“€μ–΄κ°”μœΌλ―€λ‘œ μ˜΅μ…”λ„μ„ λ²—κΈ΄ 값을 λ‚΄κ³  μ’…λ£Œν•œλ‹€.

2의 μ½”λ“œλŠ” 인자둜 nil이 λ“€μ–΄κ°”μœΌλ―€λ‘œ κ·ΈλŒ€λ‘œ μ’…λ£Œν•œλ‹€.

Last updated