RealmKeyedCollection

public protocol RealmKeyedCollection : ThreadConfined, CustomStringConvertible, Sequence

Uma coleção uniforme de valores-chave de Objects que pode ser recuperada, filtrada, classificada e operada.

Propriedades

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

    Declaração

    Swift

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

    Declaração

    Swift

    var isInvalidated: Bool { get }
  • Retorna o número de pares de valores-chave neste mapa.

    Declaração

    Swift

    var count: Int { get }
  • Uma descrição legível por humanos dos objetos contidos no Mapa.

    Declaração

    Swift

    var description: String { get }

Mutação

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

    Observação

    Observação: se o valor que está sendo adicionado ao dicionário for um objeto não gerenciado e o dicionário for gerenciado, esse objeto não gerenciado será adicionado ao Realm.

    Aviso

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

    Declaração

    Swift

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

    Parâmetros

    value

    o predicado de caminho chave de um valor.

    forKey

    A direção para classificar.

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

    Aviso

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

    Declaração

    Swift

    func removeObject(for key: Key)
  • Remove todos os objetos do dicionário. Os objetos não são removidos do Realm que os gerencia.

    Aviso

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

    Declaração

    Swift

    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 que está sendo adicionado ao dicionário for um objeto não gerenciado e o dicionário 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 dicionário.

    Aviso

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

    Declaração

    Swift

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

    Parâmetros

    key

    A chave.

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

    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

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

    Parâmetros

    keyPath

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

  • Adiciona um determinado par de valores-chave ao dicionário 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

    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 dicionário com o predicado fornecido.

    Observação

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

    Declaração

    Swift

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

    Parâmetros

    predicate

    O predicado com o qual filtrar os valores.

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

    Declaração

    Swift

    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 dicionário, mas classificados.

    Objetos são classificados com base em seus valores. Por exemplo, para classificar um dicionário de Dates da base mais recente para a mais antiga, você pode chamar dates.sorted(ascending: true).

    Declaração

    Swift

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

    Parâmetros

    ascending

    A direção para classificar.

  • Retorna um Results contendo os objetos no dicionário, mas classificados.

    Os objetos são classificados com base nos valores do caminho da chave fornecido. Por exemplo, para classificar um dicionário 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

    func sorted(byKeyPath keyPath: String, ascending: Bool) -> 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 dicionário, mas classificados.

    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

    func sorted<S: Sequence>(by sortDescriptors: S) -> Results<Value>
        where S.Iterator.Element == SortDescriptor
  • Retorna todas as chaves neste dicionário.

    Declaração

    Swift

    var keys: [Key] { get }
  • Retorna todos os valores no dicionário.

    Declaração

    Swift

    var values: [Value] { get }

Operações agregadas

  • Retorna o valor mínimo (mais baixo) de uma propriedade fornecida entre todos os objetos da coleção, ou nil se o dicionário estiver vazio.

    Aviso

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

    Declaração

    Swift

    func min<T>(ofProperty property: String) -> T? where T : 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 no dicionário ou nil se o dicionário estiver vazio.

    Aviso

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

    Declaração

    Swift

    func max<T>(ofProperty property: String) -> T? where T : MinMaxType

    Parâmetros

    property

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

  • Retorna a soma da propriedade fornecida para objetos no dicionário ou nil se o dicionário estiver vazio.

    Aviso

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

    Declaração

    Swift

    func sum<T>(ofProperty property: String) -> T where T : 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 em todos os objetos no dicionário ou nil se o dicionário estiver vazio.

    Aviso

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

    Declaração

    Swift

    func average<T>(ofProperty property: String) -> T? where T : AddableType

    Parâmetros

    property

    O nome de uma propriedade cujos valores devem ser somados.

Notificações

  • Registra um bloco a ser chamado sempre que o dicionário for alterado.

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

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

    No momento em que o bloqueio é chamado, o dicionário será totalmente avaliado e atualizado e, desde que você não execute uma transação de gravação no mesmo thread ou chame explicitamente realm.refresh(), acessá-lo nunca executará o bloqueio trabalho.

    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"
    }
    // end of run loop execution context
    

    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.

    Declaração

    Swift

    func observe(on queue: DispatchQueue?,
                 _ block: @escaping (RealmMapChange<Self>) -> Void)
    -> NotificationToken

    Parâmetros

    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.

Objetos congelados

  • Retorna se esta coleção estiver congelada

    Declaração

    Swift

    var isFrozen: Bool { get }
  • Retorna um snapshot congelado (imutável) desta collection.

    A cópia congelada é uma coleção imutável que contém os mesmos dados que esta coleção contém atualmente, mas não será atualizada quando forem feitas gravações no Realm que a contém. Ao contrário das collections ativas, as collections congeladas podem ser acessadas 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

    Manter uma collection congelada por um longo período enquanto executa transação de escrita no Realm pode fazer com que o Arquivo de Realm cresça para tamanhos grandes. Consulte Realm.Configuration.maximumNumberOfActiveVersions para obter mais informações.

    Declaração

    Swift

    func freeze() -> Self
  • Retorna uma versão ativa (mutável) dessa collection congelada.

    Esse método resolve uma referência a uma cópia ativa da mesma collection congelada. Se for chamado em uma coleção ativa, retornará a si mesmo.

    Declaração

    Swift

    func thaw() -> Self?

Disponível onde Self: RealmSubscribable

Disponível onde Value: MinMaxType

  • min() Método de extensão

    Retorna o valor mínimo (mais baixo) da coleção ou nil se a coleção estiver vazia.

    Declaração

    Swift

    func min() -> Value?
  • max() Método de extensão

    Retorna o valor máximo (mais alto) da collection ou nil se a collection estiver vazia.

    Declaração

    Swift

    func max() -> Value?

Disponível onde Value: OptionalProtocol, Value.Wrapped: MinMaxType

  • min() Método de extensão

    Retorna o valor mínimo (mais baixo) da coleção ou nil se a coleção estiver vazia.

    Declaração

    Swift

    func min() -> Value.Wrapped?
  • max() Método de extensão

    Retorna o valor máximo (mais alto) da collection ou nil se a collection estiver vazia.

    Declaração

    Swift

    func max() -> Value.Wrapped?

Disponível onde Value: AddableType

  • sum() Método de extensão

    Retorna a soma dos valores na collection ou nil se a collection estiver vazia.

    Declaração

    Swift

    func sum() -> Value
  • average() Método de extensão

    Retorna a média de todos os valores na collection.

    Declaração

    Swift

    func average<T>() -> T? where T : AddableType

Disponível onde Value: OptionalProtocol, Value.Wrapped: AddableType

  • sum() Método de extensão

    Retorna a soma dos valores na collection ou nil se a collection estiver vazia.

    Declaração

    Swift

    func sum() -> Value.Wrapped
  • average() Método de extensão

    Retorna a média de todos os valores na collection.

    Declaração

    Swift

    func average<T>() -> T? where T : AddableType

Disponível onde Value: Comparable

  • sorted(ascending:) Implementação padrão

    Implementação padrão

    Retorna um Results contendo os objetos na collection, mas ordenados.

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

    Declaração

    Swift

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

    Parâmetros

    ascending

    A direção para classificar.

Disponível onde Value: OptionalProtocol, Value.Wrapped: Comparable

  • sorted(ascending:) Implementação padrão

    Implementação padrão

    Retorna um Results contendo os objetos na collection, mas ordenados.

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

    Declaração

    Swift

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

    Parâmetros

    ascending

    A direção para classificar.