Valor

@frozen
public struct Value<Subscribable> : Publisher where Subscribable : RealmSubscribable, Subscribable : ThreadConfined

Um editor que emite um objeto ou collection cada vez que esse objeto é mutado.

  • Esse editor só pode falhar devido ao esgotamento de recursos ao criar o thread de trabalho usado para notificações de alteração.

    Declaração

    Swift

    public typealias Failure = Error
  • Este editor emite o objeto ou coleção que está publicando.

    Declaração

    Swift

    public typealias Output = Subscribable
  • Captura o NotificationToken produzido observando uma Realm Collection.

    Isso permite que você ignore a notificação ao executar um Realm.write(withoutNotifying:). Você deve usar esta chamada se precisar escrever no banco de dados Realm e ignorar essa cadeia de observação específica. O NotificationToken será salvo no KeyPathespecificado do bloco de observação configurado no receive(subscriber:).

    Declaração

    Swift

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

    Parâmetros

    object

    O objeto em que o NotificationToken está gravado.

    keyPath

    O KeyPath em que o NotificationToken é gravado.

    Valor de retorno

    Um editor ValueWithToken .

  • Especifica o agendador no qual executar operações de assinatura, cancelamento e solicitação.

    Para editores do Realm, isso determina para qual fila as notificações de alteração subjacentes são enviadas. Se receive(on:) não for usado posteriormente, ele também determinará em quais elementos da fila recebidos do editor serão avaliados. Atualmente, apenas filas de despacho em série são suportadas e o parâmetro options: não é suportado.

    Declaração

    Swift

    public func subscribe<S>(on scheduler: S) -> Value<Subscribable> where S : Scheduler

    Parâmetros

    scheduler

    A fila de despacho serial na qual realizar a assinatura.

    Valor de retorno

    Um editor que se inscreve no agendador fornecido.

  • Especifica o agendador no qual realizar operações downstream.

    Isso difere de subscribe(on:) na forma como ele é integrado ao ciclo de atualização automática. Ao usar subscribe(on:), a assinatura é realizada no agendador de destino e o editor emitirá a coleção durante a atualização. Ao usar receive(on:), a collection é convertida em ThreadSafeReference e entregue ao agendador de destino sem integração ao ciclo de atualização automática, o que significa que ela pode chegar algum tempo após a ocorrência da atualização.

    Em caso de dúvidas, você provavelmente quer subscribe(on:).

    Declaração

    Swift

    public func receive<S>(on scheduler: S) -> RealmPublishers.Handover<`Self`, S> where S : Scheduler

    Parâmetros

    scheduler

    A fila de despacho em série para receber valores.

    Valor de retorno

    Um editor que fornece valores ao agendador fornecido.