728x90
Combine에서 지정된 유형의 단일 값을 방출한 다음 완료하는 퍼블리셔입니다. 기본 개념을 소개하고 데이터 스트림에서 알려진 초기 데이터를 제공하는 데 간단하지만 유용한 퍼블리셔입니다. Just(value)
다음은 세부 내용입니다 Just(Struct).
- Just: 이는 단일 값을 방출하는 게시자를 생성하기 위해 Combine이 제공하는 함수입니다.
- (Struct): 이 부분은 게시자가 방출할 값의 유형을 나타냅니다. 이 경우 구조체입니다.
예:
import Combine
// Define a struct for temperature data
struct TemperatureData {
let value: Double
let unit: String
}
// Create a Just publisher emitting a TemperatureData struct
let temperaturePublisher = Just(TemperatureData(value: 25.0, unit: "°C"))
// Define a subscriber to print the received data
let subscriber = Subscribers.Sink<TemperatureData, Never> { _ in
// handle completion
} receiveValue: { value in
print("Temperature: \(value.value)\(value.unit)")
}
// Subscribe the subscriber to the publisher
temperaturePublisher.sink(receiveCompletion: subscriber.receiveCompletion, receiveValue: subscriber.receiveValue)
// This will print:
// Temperature: 25.0°C
이 예에서:
- 온도 정보를 보관하는 구조체를 정의합니다 .TemperatureData
- 우리는 Just단일 인스턴스를 방출하는 게시자를 생성합니다 TemperatureData.
- 구독자는 수신된 데이터를 인쇄하도록 정의됩니다.
- 구독자가 게시자에 연결되었습니다.
- 이 코드는 온도 데이터를 인쇄합니다("온도: 25. 0°C").
사용 사례 Just:
- 초기 데이터 제공: 데이터 스트림에 대한 알려진 시작 값을 제공하는 데 사용합니다 .Just
- 간단한 데이터 시나리오: 단일 값만 내보내면 되는 간단한 사례에 사용하세요 .Just
- 테스트: 테스트 목적으로 예측 가능한 데이터 스트림을 생성하는 데 사용됩니다 .Just
기억하다:
- Just단일 값만 방출하도록 제한됩니다.
- 여러 값을 내보내야 하는 시나리오에서는 사용자 지정 퍼블리셔와 같은 다른 퍼블리셔 유형을 고려하세요 .PassthroughSubject
이해 Just하고 해당 사용 사례를 통해 알려진 초기 데이터를 효과적으로 도입하고 Combine 애플리케이션에 간단한 데이터 스트림을 생성할 수 있습니다.
Combine Just 예제
다음은 Combine에서 publisher를 사용하여 UILabel의 초기 텍스트를 설정하는 방법의 예입니다 .Just
import Combine
import UIKit
// Create a UILabel
let label = UILabel()
// Create a Just publisher with the initial text
let initialTextPublisher = Just("Initial Text")
// Subscribe the UILabel to the publisher
initialTextPublisher
.sink(receiveCompletion: { _ in
// Handle completion (not applicable in this case)
}, receiveValue: { value in
label.text = value
})
이 예에서:
- 우리는 . UILabel이라는 이름의 인스턴스를 생성합니다 label.
- "Initial Text"라는 문자열을 내보내는 Just게시자를 만듭니다 .initialTextPublisher
- 우리는 이 방법을 사용하여 게시자에게 sink구독을 요청합니다 .UILabel
- receiveValue구독자를 닫으면 게시자 가 내보낸 값으로 text속성이 설정됩니다.UILabel
이 코드를 실행하면 처음 UILabel에는 "초기 텍스트"라는 텍스트가 표시됩니다.
코드의 세부 내용은 다음과 같습니다.
- JustPublisher: Publisher Just는 단일 값을 방출한 다음 완료하는 간단한 Publisher입니다. 이 경우 문자열 "Initial Text"를 방출합니다.
- sink방법: 이 sink방법은 퍼블리셔를 구독자에게 연결하는 데 사용됩니다. 두 개의 클로저가 필요합니다. 하나는 완료를 처리하고 다른 하나는 수신된 값을 처리하기 위한 것입니다.
- receiveValue클로저: 클로저는 receiveValue퍼블리셔가 값을 방출할 때마다 호출됩니다. 이 경우, 의 속성을 방출된 값으로 설정합니다 .textUILabel
Publisher Just는 Combine 애플리케이션의 UI 요소에 대한 초기 값을 설정하거나 데이터 스트림에 대한 알려진 시작점을 제공하는 데 유용한 도구입니다.
import Combine
import UIKit
// Create a UIView
let view = UIView()
// Create a Just publisher with the initial background color
let initialColorPublisher = Just(UIColor.red)
// Subscribe the UIView to the publisher
initialColorPublisher
.sink(receiveCompletion: { _ in
// Handle completion (not applicable in this case)
}, receiveValue: { value in
view.backgroundColor = value
})
이 예에서:
- 우리는 . UIView이라는 이름의 인스턴스를 생성합니다 view.
- 이라는 색상을 내보내는 Just게시자를 만듭니다 .initialColorPublisherUIColor.red
- 우리는 이 방법을 사용하여 게시자에게 sink구독을 요청합니다 .UIView
- receiveValue구독자를 닫으면 방출 되는 색상 backgroundColor의 속성이 설정됩니다.UIView
이 코드를 실행하면 처음에는 배경색 UIView이 빨간색이 됩니다.
설명:
- Just게시자: 이전 예와 유사하게 게시자 는 단일 값( 이 경우에는 색상) Just을 방출하는 데 사용됩니다 .UIColor.red
- sink방법: 이 sink방법은 게시자와 구독자 간의 연결을 설정합니다. 완료 및 수신된 값을 처리하기 위해 두 개의 클로저가 필요합니다.
- receiveValue클로저: 퍼블리셔가 값을 방출할 때마다 클로저가 실행됩니다. 여기서는 의 속성을 방출된 색상으로 설정하여 배경색을 빨간색으로 변경합니다.receiveValuebackgroundColorUIView
이 예제는 Just알려진 값을 기반으로 UI 요소의 초기 속성을 설정하는 데 사용할 수 있는 방법을 보여줍니다. 이 개념을 확장하여 다른 UI 속성을 설정하거나 Combine을 사용하여 더 복잡한 데이터 유형을 처리할 수 있습니다.
'개발' 카테고리의 다른 글
Combine Publisher - Deferred (0) | 2024.07.08 |
---|---|
Combine Publisher - Future (1) | 2024.07.08 |
Publisher & Subscriber - Combine (0) | 2024.07.08 |
Combine Publishers (0) | 2024.07.08 |
Combine Publisher (0) | 2024.07.08 |