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
Veja maisRLMCollection.makeIterator
Declaração
Swift
public struct RLMCollectionIterator : IteratorProtocol
-
Essa estrutura permite a enumeração em estilo de sequência para RLMDictionary no Swift por meio
Veja maisRLMDictionary.makeIterator
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 (consulteConfiguration
).Realm
as instâncias são armazenadas em cache internamente e a construção de objetosRealm
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 umautoreleasepool {}
e certifique-se de que você não tenha outras referências fortes para ele.Aviso
aviso As instânciasRLMRealm
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 deRLMRealm
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ânciaRLMRealm
. 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.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 queList<Element>
eResults<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çãofor...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 .
Veja maisLinkingObjects
só pode ser usado como uma propriedade em modelosObject
. Propriedades deste tipo devem ser declaradas comolet
e não podem serdynamic
.Declaração
Swift
@frozen public struct LinkingObjects<Element> where Element : ObjectBase, Element : RealmCollectionValue
extension LinkingObjects: RealmSubscribable
extension LinkingObjects: RealmCollection
-
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 deList<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çãofor...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áriosResults
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 maisDeclaraçã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
Veja maisRealmCollection
operações de encaminhamento para uma collection subjacente opaca com o mesmo tipoElement
.Declaração
Swift
public struct AnyRealmCollection<Element> : RealmCollection, UntypedCollection where Element : RealmCollectionValue
extension AnyRealmCollection: RealmSubscribable
-
Uma assinatura que envolve uma notificação do Realm.
Veja maisDeclaraçã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 maisDeclaraçã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
-
Tipo de container que mantém o deslocamento do elemento no Mapa.
Veja maisDeclaração
Swift
public struct MapIndex
-
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 maisDeclaraçã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
Veja maisMigration
é passada para um blocoMigrationBlock
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.Declaração
Swift
@frozen public struct Migration
-
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 maisDeclaraçã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 maisDeclaração
Swift
@frozen public struct Property : CustomStringConvertible
extension Property: Equatable
-
Um iterador para uma instância do
Veja maisRealmCollection
.Declaração
Swift
@frozen public struct RLMIterator<Element> : IteratorProtocol where Element : RealmCollectionValue
-
Um iterador para uma instância do
Veja maisRealmKeyedCollection
.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 maisDeclaração
Swift
@frozen public struct Schema : CustomStringConvertible
extension Schema: Equatable
-
Um
Veja maisSortDescriptor
armazena um caminho principal e uma ordem de classificação para uso comsorted(sortDescriptors:)
. É semelhante aoNSSortDescriptor
, mas suporta somente o subconjunto de funcionalidades que pode ser executado com eficiência pelo mecanismo de query do Realm.Declaração
Swift
@frozen public struct SortDescriptor
extension SortDescriptor: CustomStringConvertible
extension SortDescriptor: Equatable
extension SortDescriptor: ExpressibleByStringLiteral
-
Um tipo de invólucro de propriedade que instancia um objeto observável.
Crie um Objeto de Realm em um
SwiftUI/View
,SwiftUI/App
ouSwiftUI/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 umSwiftUI/Toggle
controle um valor booleano chamadoisEnabled
armazenado no modelo:Toggle("Enabled", isOn: $model.isEnabled)
Isso gravará a propriedade
Veja maisisEnabled
modificada no Realm do objetomodel
.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
-
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
Veja maisEnvironmentValues/realmConfiguration
.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
-
Um tipo de wrapper de propriedade que se inscreve em um Realm observável
Veja maisObject
ouList
e invalida uma visualização sempre que o objeto observável é alterado.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
Veja maisSyncConfiguration
representa parâmetros de configuração para Realms destinados a sincronizar com o MongoDB Realm.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 (
Veja maissum
no exemplo acima) está diretamente associado ao nome da função. O primeiro argumento é oBSONArray
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 umDispatchQueue
global não principal.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 umThreadSafeReference
fará com que a versão de origem do Realm seja fixada até que a referência seja desalocada.Observação
Prefira
ThreadSafeReference
s 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
Veja
Declaração
Swift
@frozen public struct ThreadSafeReference<Confined> where Confined : ThreadConfined