값
@frozen
public struct Value<Subscribable> : Publisher where Subscribable : RealmSubscribable, Subscribable : ThreadConfined
해당 객체가 변경될 때마다 객체 또는 collection을 방출하는 출판사입니다.
-
이 게시자는 변경 알림 에 사용되는 작업자 스레드를 만들 때 리소스 고갈로 인해 실패할 수만 있습니다.
선언
Swift
public typealias Failure = Error
-
이 게시자는 게시 중인 객체 또는 컬렉션을 내보냅니다.
선언
Swift
public typealias Output = Subscribable
-
Realm 컬렉션을 관찰하여 생성된
NotificationToken
를 캡처합니다.이렇게 하면
Realm.write(withoutNotifying:)
수행할 때 알림을 건너뛸 수 있습니다. Realm 데이터베이스에 기록하고 이 특정 관찰 체인을 무시해야 하는 경우 이 호출을 사용해야 합니다.NotificationToken
은receive(subscriber:)
에 설정된 관찰 블록의 지정된KeyPath
에 저장됩니다.선언
Swift
public func saveToken<T>(on object: T, at keyPath: WritableKeyPath<T, NotificationToken?>) -> ValueWithToken<Subscribable, T>
매개변수
object
NotificationToken
가 기록된 객체입니다.keyPath
NotificationToken
이 기록되는 KeyPath입니다.반환 값
ValueWithToken
출판사입니다. -
구독, 취소 및 요청 작업을 수행할 스케줄러를 지정합니다.
Realm 게시자의 경우 기본 변경 알림이 전송되는 대기열을 결정합니다. 이후에
receive(on:)
을(를) 사용하지 않으면 게시자로부터 받은 대기열 요소가 평가되는 대기열도 결정됩니다. 현재 직렬 디스패치 대기열만 지원되며options:
매개변수는 지원되지 않습니다.선언
Swift
public func subscribe<S>(on scheduler: S) -> Value<Subscribable> where S : Scheduler
매개변수
scheduler
구독을 수행할 직렬 디스패치 대기열입니다.
반환 값
지정된 스케줄러에서 구독하는 출판사입니다.
-
다운스트림 작업을 수행할 스케줄러를 지정합니다.
이는 자동 새로 고침 주기와 통합되는 방식이
subscribe(on:)
와 다릅니다.subscribe(on:)
사용하는 경우 대상 스케줄러에서 구독이 수행되고 게시자는 새로 고침 중에 컬렉션을 내보냅니다.receive(on:)
을 사용하는 경우 컬렉션이ThreadSafeReference
로 변환되고 자동 새로 고침 주기에 통합되지 않고 대상 스케줄러에 전달되므로 새로 고침이 발생한 후 일정 시간이 지나면 컬렉션이 도착할 수 있습니다.확실하지 않은 경우
subscribe(on:)
이 필요할 것입니다.선언
Swift
public func receive<S>(on scheduler: S) -> RealmPublishers.Handover<`Self`, S> where S : Scheduler
매개변수
scheduler
값을 수신할 직렬 디스패치 대기열입니다.
반환 값
지정된 스케줄러에 값을 전달하는 출판사입니다.