Estruturas

As seguintes estruturas estão disponíveis globalmente.

  • Essa estrutura permite a enumeração em estilo de sequência para RLMObjects no Swift por meio de RLMCollection.makeIterator

    Veja mais

    Declaração

    Swift

    public struct RLMCollectionIterator : IteratorProtocol
  • Essa estrutura permite a enumeração em estilo de sequência para RLMDictionary no Swift por meio RLMDictionary.makeIterator

    Veja mais

    Declaração

    Swift

    public struct RLMDictionaryIterator : IteratorProtocol
  • Uma instância Realm (também conhecida como "um Realm") representa um reconhecimento de data center Realm.

    Os domínios podem ser armazenados no disco (consulte init(path:)) ou na memória (consulte Configuration).

    Realm as instâncias são armazenadas em cache internamente e a construção de objetos Realm equivalentes (por exemplo, usando o mesmo caminho ou identificador) produz uma sobrecarga limitada.

    Se você quiser especificamente garantir que uma instância Realm seja destruída (por exemplo, se você deseja abrir um Realm, verificar algumas propriedades e, em seguida, possivelmente excluir o arquivo Realm e reabri-lo), coloque o código que usa o Realm dentro de um autoreleasepool {} e certifique-se de que você não tenha outras referências fortes para ele.

    Aviso

    aviso As instâncias RLMRealm não congeladas são confinadas por thread e não podem ser compartilhadas entre threads ou filas de despacho. Tentar fazer isso fará com que uma exceção seja lançada. Você deve obter uma instância de RLMRealm em cada thread ou fila em que deseja interagir com o Realm . Os realms podem ser confinados a uma fila de despacho em vez do thread em que são abertos, passando explicitamente na fila ao obter a instância RLMRealm . Se isso não for feito, a tentativa de usar a mesma instância no despacho de vários blocos para a mesma fila pode falhar, pois as filas nem sempre são executadas no mesmo thread.
    Veja mais

    Declaração

    Swift

    @frozen
    public struct Realm
    extension Realm: Equatable
  • LinkingObjects é um tipo de contêiner de atualização automática. Representa zero ou mais objetos que estão vinculados ao objeto modelo de sua propriedade por meio de um relacionamento de propriedade.

    LinkingObjects pode ser query com os mesmos predicados que List<Element> e Results<Element>.

    LinkingObjects sempre reflete o estado atual do Realm na thread atual, inclusive durante transação de escrita na thread atual. A única exceção a isso é ao usar a enumeração for...in , que sempre enumerará sobre os objetos de vinculação que estavam presentes quando a enumeração for iniciada, mesmo que alguns deles sejam excluídos ou modificados para não serem mais vinculados ao objeto de destino durante a enumeração .

    LinkingObjects só pode ser usado como uma propriedade em modelos Object . Propriedades deste tipo devem ser declaradas como let e não podem ser dynamic.

    Veja mais

    Declaração

    Swift

    @frozen
    public struct LinkingObjects<Element> where Element : ObjectBase, Element : RealmCollectionValue
    extension LinkingObjects: RealmSubscribable
    extension LinkingObjects: RealmCollection

AddableType

  • Results é um tipo de container de atualização automática no Realm retornado de query de objeto.

    Results pode ser consultada com os mesmos predicados de List<Element>, e você pode encadear queries para filtrar ainda mais os resultados da query.

    Results sempre refletem o estado atual do Realm na thread atual, inclusive durante transação de escrita na thread atual. A única exceção a isso é ao usar a enumeração for...in , que sempre enumerará os objetos que corresponderam à query quando a enumeração for iniciada, mesmo que alguns deles sejam excluídos ou modificados para serem excluídos pelo filtro durante a enumeração.

    Results são avaliados preguiçosamente na primeira vez que são acessados; eles só executam query quando o resultado da query é solicitado. Isso significa que o encadeamento de vários Results temporários para classificar e filtrar seus dados não executa nenhum trabalho desnecessário processando o estado intermediário.

    Depois que os resultados são avaliados ou um bloco de notificação é adicionado, os resultados são mantidos atualizados, com o trabalho feito para mantê-los atualizados em um thread em segundo plano, sempre que possível.

    As instâncias de resultados não podem ser diretamente instanciadas.

    Veja mais

    Declaração

    Swift

    @frozen
    public struct Results<Element> : Equatable where Element : RealmCollectionValue
    extension Results: RealmSubscribable
    extension Results: RealmCollection
    extension Results: Encodable where Element: Encodable
  • Um RealmCollection apagado por tipo.

    Instâncias de RealmCollection operações de encaminhamento para uma collection subjacente opaca com o mesmo tipo Element .

    Veja mais

    Declaração

    Swift

    public struct AnyRealmCollection<Element> : RealmCollection, UntypedCollection where Element : RealmCollectionValue
    extension AnyRealmCollection: RealmSubscribable

Assinaturas

  • Uma assinatura que envolve uma notificação do Realm.

    Veja mais

    Declaração

    Swift

    @available(macOS 10.15, watchOS 6.0, iOS 13.0, iOSApplicationExtension 13.0, macOSApplicationExtension 10.15, tvOS 13.0, *)
    @frozen
    public struct ObservationSubscription : Subscription
  • Uma assinatura que envolve um Realm AsyncOpenTask.

    Veja mais

    Declaração

    Swift

    @available(macOS 10.15, watchOS 6.0, iOS 13.0, iOSApplicationExtension 13.0, macOSApplicationExtension 10.15, tvOS 13.0, *)
    @frozen
    public struct AsyncOpenSubscription : Subscription

MapIndex

SingleMapEntry

  • Contêiner para manter uma única entrada de valor-chave em um mapa. Isso é usado quando uma tupla não pode ser expressa como um argumento genérico.

    Veja mais

    Declaração

    Swift

    public struct SingleMapEntry<Key, Value> : _RealmMapValue, Hashable where Key : _MapKey, Value : RealmCollectionValue
  • Migration instâncias encapsulam informações destinadas a facilitar a migração de um esquema.

    Uma instância Migration é passada para um bloco MigrationBlock definido pelo usuário ao atualizar a versão de um Realm. Essa instância fornece acesso ao reconhecimento de data center antigos e novos, aos objeto no Realm e fornece funcionalidade para modificar o Realm durante a migração.

    Veja mais

    Declaração

    Swift

    @frozen
    public struct Migration
  • Informações sobre uma propriedade específica que foi alterada em uma notificação de alteração Object .

    Veja mais

    Declaração

    Swift

    @frozen
    public struct PropertyChange
  • Esta classe representa esquemas de objeto de modelo Realm.

    Ao usar o Realm, as instâncias do ObjectSchema permitem realizar migrações e introspecção do esquema do banco de dados.

    O esquema de objetos é mapeado para tabelas no reconhecimento de data center principal.

    Veja mais

    Declaração

    Swift

    @frozen
    public struct ObjectSchema : CustomStringConvertible
    extension ObjectSchema: Equatable
  • Property instâncias representam propriedade managed por um Realm no contexto de um esquema de objetos. Essas propriedade podem ser persistentes em um Arquivo de Realm ou computadas a partir de outros dados no Realm.

    Ao usar o Realm, as instâncias de propriedade permitem realizar migrações e introspecção do esquema do banco de dados.

    As instâncias de propriedade são mapeadas para colunas no reconhecimento de data center principal.

    Veja mais

    Declaração

    Swift

    @frozen
    public struct Property : CustomStringConvertible
    extension Property: Equatable
  • Um iterador para uma instância do RealmCollection .

    Veja mais

    Declaração

    Swift

    @frozen
    public struct RLMIterator<Element> : IteratorProtocol where Element : RealmCollectionValue
  • Um iterador para uma instância do RealmKeyedCollection .

    Veja mais

    Declaração

    Swift

    @frozen
    public struct RLMMapIterator<Element> : IteratorProtocol where Element : _RealmMapValue
  • Schema instâncias representam coleções de esquemas de objetos de modelo gerenciados por um Realm.

    Ao usar o Realm, as instâncias do Schema permitem realizar migrações e introspecção do esquema do banco de dados.

    Mapa de esquemas para collection de tabelas no reconhecimento de data center principal.

    Veja mais

    Declaração

    Swift

    @frozen
    public struct Schema : CustomStringConvertible
    extension Schema: Equatable
  • Um SortDescriptor armazena um caminho principal e uma ordem de classificação para uso com sorted(sortDescriptors:). É semelhante ao NSSortDescriptor, mas suporta somente o subconjunto de funcionalidades que pode ser executado com eficiência pelo mecanismo de query do Realm.

    Veja mais

    Declaração

    Swift

    @frozen
    public struct SortDescriptor
    extension SortDescriptor: CustomStringConvertible
    extension SortDescriptor: Equatable
    extension SortDescriptor: ExpressibleByStringLiteral

StateRealmObject

  • Um tipo de invólucro de propriedade que instancia um objeto observável.

    Crie um Objeto de Realm em um SwiftUI/View, SwiftUI/App ou SwiftUI/Scene aplicando o atributo @StateRealmObject a uma declaração de propriedade e fornecendo um valor inicial que esteja em conformidade com o doc://com.apple.documentation/documentation /Combine/ObservableObject protocolo:

    @StateRealmObject var model = DataModel()
    

    O SwiftUI cria uma nova instância do objeto apenas uma vez para cada instância da estrutura que declara o objeto. Quando as propriedades publicadas do objeto de domínio observável são alteradas, o SwiftUI atualiza as partes de qualquer visualização que dependa dessas propriedades. Se não for gerenciada, a propriedade será lida do próprio objeto, caso contrário, será lida do Realm subjacente. As alterações no valor atualizarão a visualização de forma assíncrona:

    Text(model.title) // Updates the view any time `title` changes.
    

    Você pode passar o objeto de estado para uma propriedade que tenha o atributo SwiftUI/ObservedRealmObject .

    Obtenha um SwiftUI/Binding em uma das propriedades do objeto de estado usando o operador $ . Use uma associação quando quiser criar uma conexão bidirecional com uma das propriedades do objeto. Por exemplo, você pode permitir que um SwiftUI/Toggle controle um valor booleano chamado isEnabled armazenado no modelo:

    Toggle("Enabled", isOn: $model.isEnabled)
    

    Isso gravará a propriedade isEnabled modificada no Realm do objeto model .

    Veja mais

    Declaração

    Swift

    @available(iOS 14.0, macOS 11.0, tvOS 14.0, watchOS 7.0, *)
    @propertyWrapper
    public struct StateRealmObject<T> : DynamicProperty where T : RealmSubscribable, T : ThreadConfined, T : Equatable

ObservedResults

  • Um tipo de wrapper de propriedade que recupera resultados de um Realm.

    Os resultados utilizam a configuração de Realm fornecida pelo valor de ambiente EnvironmentValues/realmConfiguration.

    Veja mais

    Declaração

    Swift

    @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
    @propertyWrapper
    public struct ObservedResults<ResultType> : DynamicProperty, BoundCollection where ResultType : RealmSwiftObject, ResultType : ObjectKeyIdentifiable

ObservedRealmObject

  • Um tipo de wrapper de propriedade que se inscreve em um Realm observável Object ou List e invalida uma visualização sempre que o objeto observável é alterado.

    Veja mais

    Declaração

    Swift

    @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
    @propertyWrapper
    public struct ObservedRealmObject<ObjectType> : DynamicProperty where ObjectType : ObservableObject, ObjectType : RealmSubscribable, ObjectType : ThreadConfined, ObjectType : Equatable
  • Um SyncConfiguration representa parâmetros de configuração para Realms destinados a sincronizar com o MongoDB Realm.

    Veja mais

    Declaração

    Swift

    @frozen
    public struct SyncConfiguration
  • Estrutura que fornece uma interface para chamar uma função do MongoDB Realm com o nome e os argumentos fornecidos.

    user.functions.sum([1, 2, 3, 4, 5]) { sum, error in
        guard case let .int64(value) = sum else {
            print(error?.localizedDescription)
        }
    
        assert(value == 15)
    }
    

    O nome do membro dinâmico (sum no exemplo acima) está diretamente associado ao nome da função. O primeiro argumento é o BSONArray dos argumentos a serem fornecidos à função. O segundo e último argumento é o manipulador de conclusão a ser chamado quando a chamada de função estiver concluída. Este manipulador é executado em um DispatchQueue global não principal.

    Veja mais

    Declaração

    Swift

    @dynamicMemberLookup
    @frozen
    public struct Functions
  • Um objeto destinado a ser passado entre threads contendo uma referência segura para threads ao seu objeto confinado pela thread.

    Para resolver uma referência segura de thread em um Realm de destino em uma thread diferente, passe para Realm.resolve(_:).

    Aviso

    Um objeto ThreadSafeReference deve ser resolvido no máximo uma vez. A não resolução de um ThreadSafeReference fará com que a versão de origem do Realm seja fixada até que a referência seja desalocada.

    Observação

    Prefira ThreadSafeReferences de curta duração, pois os dados da versão do Realm de origem serão retidos até que todas as referências tenham sido resolvidas ou desalocadas.

    Veja mais

    Declaração

    Swift

    @frozen
    public struct ThreadSafeReference<Confined> where Confined : ThreadConfined