CollectionChangeset

@frozen
public struct CollectionChangeset<Collection> : Publisher where Collection : RealmCollection

RealmCollectionChange를 방출하는 출판사입니다. 관찰된 객체가 수정될 때마다

receive(on:)subscribe(on:) 는 이 출판사에서 직접 호출할 수 있으며, .threadSafeReference() 호출은 중간 변환이 있는 경우에만 필요합니다. subscribe(on:) 를 사용하는 경우 항상 파이프라인의 첫 번째 작업이어야 합니다.

RealmCollection의 changesetPublisher 속성을 사용하여 이 출판사를 만듭니다.

  • 선언

    Swift

    public typealias Output = RealmCollectionChange<Collection>
  • 이 출판사는 RealmCollectionChange의 .error 사례를 통해 오류를 보고합니다.

    선언

    Swift

    public typealias Failure = Never
  • Realm collection을 관찰하여 생성된 NotificationToken 를 캡처합니다.

    이렇게 하면 Realm.write(withoutNotifying:) 수행 시 알림을 건너뛸 수 있습니다. Realm 데이터베이스에 기록하고 이 특정 관찰 체인을 무시해야 하는 경우 이 호출을 사용해야 합니다. NotificationToken 은(는) receive(subscriber:) 에 설정된 관찰 블록에서 지정된 KeyPath에 저장됩니다.

    선언

    Swift

    public func saveToken<T>(on object: T, at keyPath: WritableKeyPath<T, NotificationToken?>) -> CollectionChangesetWithToken<Collection, T>

    매개변수

    object

    NotificationToken 가 기록된 객체입니다.

    keyPath

    NotificationToken 가 기록된 KeyPath입니다.

    반환 값

    CollectionChangesetWithToken 출판사입니다.

  • 구독, 취소 및 요청 작업을 수행할 스케줄러를 지정합니다.

    Realm 출판사의 경우 기본 변경 알림이 전송되는 대기열을 결정합니다. 이후에 receive(on:) 을(를) 사용하지 않으면 발행자로부터 수신한 대기열 요소를 평가할 대기열도 결정됩니다. 현재 직렬 디스패치 대기열만 지원되며 options: 매개변수는 지원되지 않습니다.

    선언

    Swift

    public func subscribe<S>(on scheduler: S) -> CollectionChangeset<Collection> where S : Scheduler

    매개변수

    scheduler

    구독을 수행할 직렬 디스패치 대기열입니다.

    반환 값

    지정된 스케줄러에서 구독하는 출판사입니다.

  • 다운스트림 작업을 수행할 스케줄러를 지정합니다.

    이는 자동 새로 고침 주기와 통합되는 방식에서 subscribe(on:) 와(과) 다릅니다. subscribe(on:) 을 사용하는 경우 대상 스케줄러에서 구독이 수행되고 출판사는 새로 고침 중에 컬렉션을 내보냅니다. receive(on:) 을 사용하는 경우 collection은 ThreadSafeReference 로 변환되고 자동 새로 고침 주기에 통합되지 않은 상태로 대상 스케줄러에 전달됩니다.

    확실하지 않은 경우 다음을 수행할 수 있습니다. subscribe(on:)

    선언

    Swift

    public func receive<S>(on scheduler: S) -> DeferredHandoverCollectionChangeset<`Self`, Collection, S> where S : Scheduler

    매개변수

    scheduler

    값을 수신할 직렬 디스패치 대기열입니다.

    반환 값

    지정된 스케줄러에 값을 전달하는 출판사입니다.