Map

public final class Map<Key, Value> : RLMSwiftCollectionBase where Key : _MapKey, Value : RealmCollectionValue
extension Map: ObservableObject, RealmSubscribable
extension Map: Sequence
extension Map: RealmKeyedCollection
extension Map: Decodable where Key: Decodable, Value: Decodable
extension Map: Encodable where Key: Encodable, Value: Encodable

O Map é um container de armazenamento de valor chave usado para armazenar tipos de Realm suportados.

O mapa é um tipo genérico parametrizado no tipo que armazena. Pode ser uma subclasse de objetos ou um dos seguintes tipos: Bool, Int, Int8, Int16, Int32, Int64, Flutuante, Duplo, String, Dados, Data, Decimal128 e ObjectId (e suas versões opcionais)

Observação

Versões opcionais dos tipos acima, exceto Object , só são suportadas em Realms não sincronizados.

O mapa só suporta String como uma chave. O Realm não permite o uso de . ou $ caracteres em uma chave de dicionário.

Ao contrário da collection nativa do Swift, o Maps é um tipo de referência e só é imutável se o Realm que os managed for aberto como somente leitura.

Um Mapa pode ser filtrado e ordenado com os mesmos predicados do Results<Value>.

Propriedades

  • O Realm que gerencia o mapa, ou nil se o mapa não for gerenciado.

    Declaração

    Swift

    public var realm: Realm? { get }
  • Indica se o mapa não pode mais ser acessado.

    Declaração

    Swift

    public var isInvalidated: Bool { get }
  • Retorna todas as chaves neste mapa.

    Declaração

    Swift

    public var keys: [Key] { get }
  • Retorna todos os valores neste mapa.

    Declaração

    Swift

    public var values: [Value] { get }

Inicializadores

  • Cria um Map que contém objetos de modelo de Realm do tipo Value.

    Declaração

    Swift

    public override init()

Contar

  • Retorna o número de pares de valores-chave neste mapa.

    Declaração

    Swift

    @objc
    public var count: Int { get }

Mutação

  • Atualiza o valor armazenado no mapa para a chave fornecida ou adiciona um novo par chave-valor se a chave não existir.

    Observação

    Se o valor que está sendo adicionado ao mapa for um objeto não managed e o mapa for managed, esse objeto não managed será adicionado ao Realm.

    Aviso

    Este método só pode ser chamado durante uma transação de escrita.

    Declaração

    Swift

    public func updateValue(_ value: Value, forKey key: Key)

    Parâmetros

    value

    o predicado de caminho chave de um valor.

    forKey

    A direção para classificar.

  • Mesclar o dicionário fornecido neste mapa, utilizando um fechamento de combinação para determinar o valor para quaisquer chaves duplicadas.

    Se dictionary contiver uma chave que já esteja presente neste mapa, combine será chamado com o valor atualmente no mapa e o valor no dicionário. O valor retornado pelo fechamento será armazenado no mapa para esta chave.

    Observação

    Se um valor adicionado ao mapa for um objeto não managed e o mapa for managed, esse objeto não managed será adicionado ao Realm.

    Aviso

    Este método só pode ser chamado em Mapas managed durante uma transação de escrita.

    Declaração

    Swift

    public func merge<S>(_ sequence: S, uniquingKeysWith combine: (Value, Value) throws -> Value) rethrows
            where S: Sequence, S.Element == (key: Key, value: Value)

    Parâmetros

    dictionary

    O dicionário para mesclar neste mapa.

    combine

    Um fechamento que utiliza os valores atuais e novos para quaisquer chaves duplicadas. O fechamento retorna o valor desejado para o mapa final.

  • Mesclar o mapa fornecido neste mapa, utilizando um fechamento de combinação para determinar o valor para quaisquer chaves duplicadas.

    Se other contiver uma chave que já esteja presente neste mapa, combine será chamado com o valor atualmente no mapa e o valor no outro mapa. O valor retornado pelo fechamento será armazenado no mapa para esta chave.

    Observação

    Se um valor adicionado ao mapa for um objeto não managed e o mapa for managed, esse objeto não managed será adicionado ao Realm.

    Aviso

    Este método só pode ser chamado em Mapas managed durante uma transação de escrita.

    Declaração

    Swift

    public func merge(_ other: Map<Key, Value>, uniquingKeysWith combine: (Value, Value) throws -> Value) rethrows

    Parâmetros

    other

    O mapa para mesclar neste mapa.

    combine

    Um fechamento que utiliza os valores atuais e novos para quaisquer chaves duplicadas. O fechamento retorna o valor desejado para o mapa final.

  • Remove a chave fornecida e seu objeto associado, somente se a chave existir no mapa. Se a chave não existir, o mapa não será modificado.

    Aviso

    Este método só pode ser chamado durante uma transação de escrita.

    Declaração

    Swift

    public func removeObject(for key: Key)
  • Remove todos os objetos do mapa. O objeto não é removido do Realm que managed eles.

    Aviso

    Este método só pode ser chamado durante uma transação de escrita.

    Declaração

    Swift

    public func removeAll()
  • Retorna o valor de uma determinada chave ou define um valor para uma chave caso o índice seja usado para uma atribuição.

    Observação

    Observação:Se o valor adicionado ao mapa for um objeto não gerenciado e o mapa for gerenciado, esse objeto não gerenciado será adicionado ao Realm.

    Observação

    Observação:Se o valor que está sendo atribuído a uma chave for nil , essa chave será removida do mapa.

    Aviso

    Este método só pode ser chamado durante uma transação de escrita.

    Declaração

    Swift

    public subscript(key: Key) -> Value? { get set }

    Parâmetros

    key

    A chave.

  • Retorna um tipo de AnyObject para uma chave especificada se ela existir no mapa.

    Declaração

    Swift

    @objc
    public func object(forKey key: AnyObject) -> AnyObject?

    Parâmetros

    key

    A chave para a propriedade cujos valores são desejados.

KVC

  • Retorna um tipo de Value para uma chave especificada se ela existir no mapa.

    Observe que, ao usar a codificação key-value, a chave deve ser uma string.

    Declaração

    Swift

    @nonobjc
    public func value(forKey key: String) -> AnyObject?

    Parâmetros

    key

    A chave para a propriedade cujos valores são desejados.

  • Retorna um tipo de Value para uma chave especificada se ela existir no mapa.

    Declaração

    Swift

    @nonobjc
    public func value(forKeyPath keyPath: String) -> AnyObject?

    Parâmetros

    keyPath

    A chave para a propriedade cujos valores são desejados.

  • Adiciona um determinado par de chave-valor ao mapa ou atualiza uma determinada chave caso ela já exista.

    Aviso

    Este método só pode ser chamado durante uma transação de escrita.

    Declaração

    Swift

    public func setValue(_ value: Any?, forKey key: String)

    Parâmetros

    value

    O valor do objeto.

    key

    O nome da propriedade cujo valor deve ser definido em cada objeto.

Filtragem

  • Retorna um Results contendo todos os valores correspondentes no mapa com o predicado fornecido.

    Observação

    Isso retornará os valores no mapa, e não os pares chave-valor.

    Declaração

    Swift

    public func filter(_ predicate: NSPredicate) -> Results<Value>

    Parâmetros

    predicate

    O predicado com o qual filtrar os valores.

  • Retorna um Results contendo todos os valores correspondentes no mapa com a query fornecida.

    Observação

    Isso só deve ser usado com classes usando a declaração de propriedade @Persistable .

    • Uso:

      myMap.where {
      ($0.fooCol > 5) && ($0.barCol == "foobar")
      }
      

    Observação

    Consulte Query para obter mais informações sobre quais operações de query estão disponíveis.

    Declaração

    Swift

    public func `where`(_ isIncluded: ((Query<Value>) -> Query<Bool>)) -> Results<Value>

    Parâmetros

    isIncluded

    O encerramento da query com o qual filtrar os objetos.

  • Retorna um valor booleano que indica se o Mapa contém o par de valores-chave que satisfaz o predicado fornecido

    Declaração

    Swift

    public func contains(where predicate: @escaping (_ key: Key, _ value: Value) -> Bool) -> Bool

    Parâmetros

    where

    um fechamento que testa se algum par de chaves do mapa fornecido representa a correspondência.

Classificação

  • Retorna um Results contendo os objetos no mapa, mas ordenados.

    objeto são classificados com base em seus valores. Por exemplo, para classificar um mapa de Dates do mais recente para o mais antigo, você pode chamar dates.sorted(ascending: true).

    Declaração

    Swift

    public func sorted(ascending: Bool = true) -> Results<Value>

    Parâmetros

    ascending

    A direção para classificar.

  • Retorna um Results contendo os objetos no mapa, mas ordenados.

    Os objetos são classificados com base nos valores do caminho de chave fornecido. Por exemplo, para classificar um mapa de Students do mais novo para o mais antigo com base em sua propriedade age , você pode chamar students.sorted(byKeyPath: "age", ascending: true).

    Aviso

    Os dicionários só podem ser classificados por propriedades dos tipos booleano, Date , NSDate , ponto flutuante de precisão única e dupla, inteiro e string.

    Declaração

    Swift

    public func sorted(byKeyPath keyPath: String, ascending: Bool = true) -> Results<Value>

    Parâmetros

    keyPath

    O caminho da chave para classificar por.

    ascending

    A direção para classificar.

  • Retorna um Results contendo os objetos no mapa, mas ordenados.

    Aviso

    Os mapas só podem ser classificados pelas propriedades dos tipos booleano, Date, NSDate, ponto flutuante de precisão única e dupla, inteiros e string.

    Declaração

    Swift

    public func sorted<S: Sequence>(by sortDescriptors: S) -> Results<Value>
        where S.Iterator.Element == SortDescriptor

Operações agregadas

  • Retorna o valor mínimo (mais baixo) da propriedade fornecida entre todos os objeto na collection ou nil se o mapa estiver vazio.

    Aviso

    Somente uma propriedade cujo tipo esteja em conformidade com o protocolo MinMaxType pode ser especificada.

    Declaração

    Swift

    public func min<T>(ofProperty property: String) -> T? where T : _HasPersistedType, T.PersistedType : MinMaxType

    Parâmetros

    property

    O nome de uma propriedade cujo valor mínimo é desejado.

  • Retorna o valor máximo (mais alto) da propriedade fornecida entre todos os objetos na collection, ou nil se o mapa estiver vazio.

    Aviso

    Somente uma propriedade cujo tipo esteja em conformidade com o protocolo MinMaxType pode ser especificada.

    Declaração

    Swift

    public func max<T>(ofProperty property: String) -> T? where T : _HasPersistedType, T.PersistedType : MinMaxType

    Parâmetros

    property

    O nome de uma propriedade cujo valor mínimo é desejado.

  • Retorna a soma da propriedade fornecida para objetos na collection ou nil se o mapa estiver vazio.

    Aviso

    Somente nomes de propriedades de um tipo em conformidade com o protocolo AddableType podem ser usados.

    Declaração

    Swift

    public func sum<T>(ofProperty property: String) -> T where T : _HasPersistedType, T.PersistedType : AddableType

    Parâmetros

    property

    O nome de uma propriedade em conformidade com AddableType para calcular a soma.

  • Retorna o valor médio de uma determinada propriedade sobre todos os objeto na collection ou nil se o mapa estiver vazio.

    Aviso

    Somente uma propriedade cujo tipo esteja em conformidade com o protocolo AddableType pode ser especificada.

    Declaração

    Swift

    public func average<T>(ofProperty property: String) -> T? where T : _HasPersistedType, T.PersistedType : AddableType

    Parâmetros

    property

    O nome de uma propriedade cujos valores devem ser somados.

Notificações

  • Registra um bloco a ser chamado cada vez que o mapa for alterado.

    O bloco será chamado de forma assíncrona com o mapa inicial e, em seguida, chamado novamente após cada transação de escrita que altere qualquer uma das chaves ou valores no mapa.

    O parâmetro change que é passado para o bloco reporta, na forma de chaves dentro do mapa, quais dos pares de chave-valor foram adicionados, removidos ou modificados durante cada transação de escrita.

    Se nenhuma fila for fornecida, as notificações serão entregues por meio do loop de execução padrão e, portanto, não poderão ser entregues enquanto o loop de execução estiver bloqueado por outra atividade. Se uma fila for fornecida, as notificações serão entregues para essa fila. Quando as notificações não podem ser entregues instantaneamente, várias notificações podem ser agrupadas em uma única notificação. Isso pode incluir a notificação com a coleção inicial.

    Por exemplo, o código a seguir executa uma transação de escrita imediatamente após adicionar o bloqueio de notificação, para que não haja oportunidade para que a notificação inicial seja entregue primeiro. Como resultado, a notificação inicial refletirá o estado do Realm após a transação de escrita.

    let myStringMap = myObject.stringMap
    print("myStringMap.count: \(myStringMap?.count)") // => 0
    let token = myStringMap.observe { changes in
        switch changes {
        case .initial(let myStringMap):
            // Will print "myStringMap.count: 1"
            print("myStringMap.count: \(myStringMap.count)")
           print("Dog Name: \(myStringMap["nameOfDog"])") // => "Rex"
            break
        case .update:
            // Will not be hit in this example
            break
        case .error:
            break
        }
    }
    try! realm.write {
        myStringMap["nameOfDog"] = "Rex"
    }
    

    Se nenhum caminho-chave for fornecido, o bloqueio será executado em qualquer inserção, modificação ou exclusão para todas as propriedades do objeto e as propriedades de quaisquer objetos vinculados aninhados. Se um caminho de chave ou caminhos de chave forem fornecidos, o bloco será chamado para alterações que ocorrem apenas nos caminhos de chave fornecidos. Por exemplo, se:

    class Dog: Object {
        @Persisted var name: String
        @Persisted var age: Int
        @Persisted var toys: List<Toy>
    }
    // ...
    let dogs = myObject.mapOfDogs
    let token = dogs.observe(keyPaths: ["name"]) { changes in
        switch changes {
        case .initial(let dogs):
           // ...
        case .update:
           // This case is hit:
           // - after the token is initialized
           // - when the name property of an object in the
           // collection is modified
           // - when an element is inserted or removed
           //   from the collection.
           // This block is not triggered:
           // - when a value other than name is modified on
           //   one of the elements.
        case .error:
            // ...
        }
    }
    
    • Se o caminho da chave observado fosse ["toys.brand"], qualquer inserção ou exclusão na lista toys em qualquer um dos elementos da collection trigger o bloqueio. Alterações no valor brand em qualquer Toy vinculado a um Dog nessa collection triggerão o bloqueio. Alterações em um valor diferente de brand em qualquer Toy vinculado a um Dog nessa collection não trigger o bloqueio. Qualquer inserção ou remoção na collection de tipos Dog que está sendo observada também trigger uma notificação.
    • Se o exemplo acima observasse o caminho da chave ["toys"], qualquer inserção, exclusão ou modificação na lista toys para qualquer elemento da collection trigger o bloqueio. Alterações em qualquer valor em qualquer Toy que esteja vinculado a um Dog nesta collection não trigger o bloqueio. Qualquer inserção ou remoção na collection de tipos Dog que está sendo observada ainda trigger uma notificação.

    Observação

    Vários tokens de notificação no mesmo objeto que filtram exclusivamente caminhos de chave separados não filtram. Se uma alteração de caminho-chavefor satisfeita para um token de notificação, todos os bloqueios de token de notificação para esse objeto serão executados.

    Você deve reter o token retornado pelo tempo que desejar que as atualizações sejam enviadas ao bloco. Para parar de receber atualizações, ligue para invalidate() no token.

    Aviso

    Este método não pode ser chamado durante uma transação de escrita, ou quando o Realm que o contém for somente leitura.

    Observação

    O parâmetro keyPaths refere-se às propriedade de objeto do tipo de collection e não se refere a pares de chave/valor específicos dentro do Mapa.

    Declaração

    Swift

    public func observe(keyPaths: [String]? = nil,
                        on queue: DispatchQueue? = nil,
                        _ block: @escaping (RealmMapChange<Map>) -> Void)
    -> NotificationToken

    Parâmetros

    keyPaths

    Somente a propriedade contida na array de caminhos principais vai trigger o bloqueio quando forem modificadas. Se nil, notificações serão entregues para qualquer alteração de propriedade no objeto. Os caminhos da chave de string que não correspondem a uma propriedade válida lançarão uma exceção. Consulte a descrição acima para obter mais detalhes sobre propriedades vinculadas.

    queue

    A fila de despacho em série para receber a notificação. Se nil, as notificações são entregues ao thread atual.

    block

    O bloco a ser chamado sempre que ocorre uma alteração.

    Valor de retorno

    Um token que deve ser mantido pelo tempo que você quiser que as atualizações sejam entregues.

  • Registra um bloco a ser chamado cada vez que o mapa for alterado.

    O bloco será chamado de forma assíncrona no ator com o mapa inicial e, em seguida, chamado novamente após cada transação de gravação, o que altera quais chaves estão presentes no mapa ou os valores de qualquer um dos objetos.

    O parâmetro change que é passado para o bloco reporta, na forma de chaves dentro do mapa, quais dos pares de chave-valor foram adicionados, removidos ou modificados durante cada transação de escrita.

    As notificações são entregues para uma função isolada para o ator fornecido, nesse executor de atores. Se o ator estiver realizando um trabalho de bloqueio, várias notificações poderão ser agrupadas em uma única notificação. Isso pode incluir a notificação com a collection inicial, e as alterações são relatadas apenas para gravações que ocorrem após a entrega da notificação inicial.

    Se nenhum caminho-chave for fornecido, o bloqueio será executado em qualquer inserção, modificação ou exclusão para todas as propriedades do objeto e as propriedades de quaisquer objetos vinculados aninhados. Se um caminho de chave ou caminhos de chave forem fornecidos, o bloco será chamado para alterações que ocorrem apenas nos caminhos de chave fornecidos. Por exemplo, se:

    class Dog: Object {
        @Persisted var name: String
        @Persisted var age: Int
        @Persisted var toys: List<Toy>
    }
    // ...
    let dogs = myObject.mapOfDogs
    let token = dogs.observe(keyPaths: ["name"], on: actor) { actor, changes in
        switch changes {
        case .initial(let dogs):
            // ...
        case .update:
            // This case is hit:
            // - after the token is initialized
            // - when the name property of an object in the collection is modified
            // - when an element is inserted or removed from the collection.
            // This block is not triggered:
            // - when a value other than name is modified on one of the elements.
        case .error:
            // No longer possible and left for backwards compatibility
        }
    }
    
    • Se o caminho da chave observado fosse ["toys.brand"], qualquer inserção ou exclusão na lista toys em qualquer um dos elementos da collection trigger o bloqueio. Alterações no valor brand em qualquer Toy vinculado a um Dog nessa collection triggerão o bloqueio. Alterações em um valor diferente de brand em qualquer Toy vinculado a um Dog nessa collection não trigger o bloqueio. Qualquer inserção ou remoção na collection de tipos Dog que está sendo observada também trigger uma notificação.
    • Se o exemplo acima observasse o caminho da chave ["toys"], qualquer inserção, exclusão ou modificação na lista toys para qualquer elemento da collection trigger o bloqueio. Alterações em qualquer valor em qualquer Toy que esteja vinculado a um Dog nesta collection não trigger o bloqueio. Qualquer inserção ou remoção na collection de tipos Dog que está sendo observada ainda trigger uma notificação.

    Você deve reter o token retornado pelo tempo que desejar que as atualizações sejam enviadas ao bloco. Para parar de receber atualizações, ligue para invalidate() no token.

    Aviso

    Este método não pode ser chamado durante uma transação de escrita, ou quando o Realm que o contém for somente leitura.

    Observação

    O parâmetro keyPaths refere-se às propriedade de objeto do tipo de collection e não se refere a pares de chave/valor específicos dentro do Mapa.

    Declaração

    Swift

    @available(macOS 10.15, tvOS 13.0, iOS 13.0, watchOS 6.0, *)
    public func observe<A: Actor>(
        keyPaths: [String]? = nil, on actor: A,
        _isolation: isolated (any Actor)? = #isolation,
        _ block: @Sendable @escaping (isolated A, RealmMapChange<Map>) -> Void
    ) async -> NotificationToken

    Parâmetros

    keyPaths

    Somente a propriedade contida na array de caminhos principais vai trigger o bloqueio quando forem modificadas. Se nil, notificações serão entregues para qualquer alteração de propriedade no objeto. Os caminhos da chave de string que não correspondem a uma propriedade válida lançarão uma exceção. Consulte a descrição acima para obter mais detalhes sobre propriedades vinculadas.

    actor

    O ator para o qual as notificações devem ser entregues. O bloco é passado esse ator como um parâmetro isolado, permitindo que você acesse o ator de forma síncrona a partir da chamada de resposta.

    block

    O bloco a ser chamado sempre que ocorre uma alteração.

    Valor de retorno

    Um token que deve ser mantido pelo tempo que você quiser que as atualizações sejam entregues.

  • Registra um bloco a ser chamado cada vez que o mapa for alterado.

    O bloco será chamado de forma assíncrona no ator com o mapa inicial e, em seguida, chamado novamente após cada transação de gravação, o que altera quais chaves estão presentes no mapa ou os valores de qualquer um dos objetos.

    O parâmetro change que é passado para o bloco reporta, na forma de chaves dentro do mapa, quais dos pares de chave-valor foram adicionados, removidos ou modificados durante cada transação de escrita.

    As notificações são entregues para uma função isolada para o ator fornecido, nesse executor de atores. Se o ator estiver realizando um trabalho de bloqueio, várias notificações poderão ser agrupadas em uma única notificação. Isso pode incluir a notificação com a collection inicial, e as alterações são relatadas apenas para gravações que ocorrem após a entrega da notificação inicial.

    O bloco será chamado para alterações que ocorrem apenas nos caminhos-chave fornecidos. Por exemplo, se:

    class Dog: Object {
        @Persisted var name: String
        @Persisted var age: Int
        @Persisted var toys: List<Toy>
    }
    // ...
    let dogs = myObject.mapOfDogs
    let token = dogs.observe(keyPaths: [\.name], on: actor) { actor, changes in
        switch changes {
        case .initial(let dogs):
            // ...
        case .update:
            // This case is hit:
            // - after the token is initialized
            // - when the name property of an object in the collection is modified
            // - when an element is inserted or removed from the collection.
            // This block is not triggered:
            // - when a value other than name is modified on one of the elements.
        case .error:
            // No longer possible and left for backwards compatibility
        }
    }
    
    • Se o caminho da chave observado fosse [\.toys.brand], qualquer inserção ou exclusão na lista toys em qualquer um dos elementos da collection trigger o bloqueio. Alterações no valor brand em qualquer Toy vinculado a um Dog nessa collection triggerão o bloqueio. Alterações em um valor diferente de brand em qualquer Toy vinculado a um Dog nessa collection não trigger o bloqueio. Qualquer inserção ou remoção na collection de tipos Dog que está sendo observada também trigger uma notificação.
    • Se o exemplo acima observasse o caminho da chave [\.toys], qualquer inserção, exclusão ou modificação na lista toys para qualquer elemento da collection trigger o bloqueio. Alterações em qualquer valor em qualquer Toy que esteja vinculado a um Dog nesta collection não trigger o bloqueio. Qualquer inserção ou remoção na collection de tipos Dog que está sendo observada ainda trigger uma notificação.

    Você deve reter o token retornado pelo tempo que desejar que as atualizações sejam enviadas ao bloco. Para parar de receber atualizações, ligue para invalidate() no token.

    Aviso

    Este método não pode ser chamado durante uma transação de escrita, ou quando o Realm que o contém for somente leitura.

    Observação

    O parâmetro keyPaths refere-se às propriedade de objeto do tipo de collection e não se refere a pares de chave/valor específicos dentro do Mapa.

    Declaração

    Swift

    @available(macOS 10.15, tvOS 13.0, iOS 13.0, watchOS 6.0, *)
    public func observe<A: Actor>(
        keyPaths: [PartialKeyPath<Value.Wrapped>], on actor: A,
        _isolation: isolated (any Actor)? = #isolation,
        _ block: @Sendable @escaping (isolated A, RealmMapChange<Map>) -> Void
    ) async -> NotificationToken where Value: OptionalProtocol, Value.Wrapped: ObjectBase

    Parâmetros

    keyPaths

    Somente a propriedade contida na array de caminhos principais vai trigger o bloqueio quando forem modificadas. Se nil, notificações serão entregues para qualquer alteração de propriedade no objeto. Os caminhos da chave de string que não correspondem a uma propriedade válida lançarão uma exceção. Consulte a descrição acima para obter mais detalhes sobre propriedades vinculadas.

    actor

    O ator para o qual as notificações devem ser entregues. O bloco é passado esse ator como um parâmetro isolado, permitindo que você acesse o ator de forma síncrona a partir da chamada de resposta.

    block

    O bloco a ser chamado sempre que ocorre uma alteração.

    Valor de retorno

    Um token que deve ser mantido pelo tempo que você quiser que as atualizações sejam entregues.

Objetos congelados

  • Indica se o Map está congelado.

    Maps congelados são imutáveis e podem ser acessados de qualquer thread. Maps congelados são criados chamando -freeze em um Map ativo managed. Maps não gerenciados nunca são congelados.

    Declaração

    Swift

    public var isFrozen: Bool { get }
  • Retorna um snapshot congelado (imutável) de um Map.

    A cópia congelada é um Map imutável que contém os mesmos dados que este Map contém atualmente, mas não será atualizado quando forem feitas gravações no Realm que a contém. Ao contrário dos Map Mapcongelados podem ser acessados de qualquer thread.

    Aviso

    Este método não pode ser chamado durante uma transação de escrita, ou quando o Realm que o contém for somente leitura.

    Aviso

    Este método só pode ser chamado em um Map managed.

    Aviso

    Manter um Map congelado por um longo período enquanto executa a transação de escrita no Realm pode fazer com que o arquivo do Realm cresça para tamanhos grandes. Consulte RLMRealmConfiguration.maximumNumberOfActiveVersions para obter mais informações.

    Declaração

    Swift

    public func freeze() -> Map
  • Retorna uma versão ativa deste Map congelado.

    Este método resolve uma referência a uma cópia ativa do mesmo Map congelado. Se chamado em um Map ao vivo, se retornará.

    Declaração

    Swift

    public func thaw() -> Map?
  • Retorna uma descrição legível por humanos dos objetos contidos no Mapa.

    Declaração

    Swift

    public override var description: String { get }

Map

  • Uma editora que emite um vazio toda vez que a collection muda.

    Apesar do nome, isso na verdade é emitido após a mudança da collection.

    Declaração

    Swift

    public var objectWillChange: RealmPublishers.WillChange<Map> { get }

Suporte a sequências

Disponível onde Key: Decodable, Value: Decodable

Disponível onde Key: Encodable, Value: Encodable