Aliases de tipo
Os seguintes aliases de tipo estão disponíveis globalmente.
-
PropertyType
é uma enumeração que descreve todos os tipos de propriedade suportados nos modelos Realm.Para obter mais informações, consulte modelo de objetos e esquemas.
Tipos primitivos
Int
Bool
Float
Double
Tipo de objeto de Realm
String
Data
Date
Decimal128
ObjectId
relacionamento: tipos array (no Swift,
List
) eObject
Object
Array
Declaração
Swift
public typealias PropertyType = RLMPropertyType
-
Um token opaco que é retornado de métodos que se inscrevem para alterações em um Realm.
Veja
Realm.observe(_:)
Declaração
Swift
public typealias NotificationToken = RLMNotificationToken
-
Um objeto representando a configuração do aplicativo Realm
Veja
RLMAppConfiguration
Observação
AppConfiguration
as opções não podem ser modificadas depois que oApp
que as utiliza for criado. Os valores de configuração da aplicação são armazenados em cache quando a aplicação é criada, portanto, quaisquer modificações posteriores não terão efeito.Declaração
Swift
public typealias AppConfiguration = RLMAppConfiguration
-
Um objeto que representa um cliente que realiza chamadas de rede nas chaves de API do usuário do Realm cloud
Veja
RLMAPIKeyAuth
Declaração
Swift
public typealias APIKeyAuth = RLMAPIKeyAuth
-
Um objeto que representa um cliente que realiza chamadas de rede nas funções de registro e senha do usuário do Realm cloud
Veja
RLMEmailPasswordAuth
Declaração
Swift
public typealias EmailPasswordAuth = RLMEmailPasswordAuth
-
Um objeto representando o perfil social de um usuário.
Declaração
Swift
public typealias UserProfile = RLMUserProfile
-
Um tipo de bloqueio usado para relatar um erro
Declaração
Swift
public typealias EmailPasswordAuthOptionalErrorBlock = RLMEmailPasswordAuthOptionalErrorBlock
-
Um objeto que representa um cliente que realiza chamadas de rede no Realm cloud para registrar dispositivos nas notificações push
Veja
VejaRLMPushClient
Declaração
Swift
public typealias PushClient = RLMPushClient
-
Um objeto usado no UserAPIKeyProviderClient
Declaração
Swift
public typealias UserAPIKey = RLMUserAPIKey
-
O
App
tem o conjunto fundamental de métodos para se comunicar com um back-end do aplicativo Realm. Essa interface fornece acesso ao login e autenticação.Declaração
Swift
public typealias App = RLMApp
-
Use esse delegado para receber uma chamada de resposta assim que a autenticação for bem-sucedida ou falhar
Declaração
Swift
@available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *) public typealias ASLoginDelegate = RLMASLoginDelegate
-
AsymmetricObject
é uma classe base usada para definir objetos de Realm assimétricos.Objeto assimétricos só podem ser criados usando a função
create(_ type:, value:)
e não podem ser adicionados, removidos ou query. Quando criados, objeto assimétricos serão sincronizados unidirecionalmente com o reconhecimento de data center MongoDB e não podem ser acessados localmente.Vincular um objeto assimétrico dentro de um
Object
não é permitido e gerará um erro.Os tipos de propriedades suportados em
AsymmetricObject
são os mesmos deObject
, exceto pelo fato de que objetos assimétricos só podem ser vinculados a objetos incorporados, portanto, as propriedadesObject
eList<Object>
não são suportadas (EmbeddedObject
eList<EmbeddedObject>
são).class Person: AsymmetricObject { @Persisted(primaryKey: true) var _id: ObjectId @Persisted var name: String @Persisted var age: Int }
Declaração
Swift
public typealias AsymmetricObject = RealmSwiftAsymmetricObject
-
A MaxKey sempre terá o maior valor ao comparar com outros BSON types
Declaração
Swift
public typealias MaxKey = RLMMaxKey
-
O MinKey sempre será o menor valor ao comparar com outros BSON types
Declaração
Swift
public typealias MinKey = RLMMinKey
-
Object
é uma classe usada para definir objetos de modelo Realm.No Realm, você define suas classes de modelo subclassificando
Object
e adicionando propriedade a serem managed. Em seguida, você instancia e usa suas subclasses personalizadas em vez de usar a classeObject
diretamente.class Dog: Object { @Persisted var name: String @Persisted var adopted: Bool @Persisted var siblings: List<Dog> }
Tipos de propriedade suportados
String
Int
,Int8
,Int16
,Int32
,Int64
Float
Double
Bool
Date
Data
Decimal128
ObjectId
UUID
AnyRealmValue
- Qualquer enumeração brutoRepresentável cujo tipo bruto seja um tipo de property legal. Os enums devem ser explicitamente marcados como em conformidade com
PersistableEnum
. Object
subclasses, para modelar relacionamentos muitos-para-umEmbeddedObject
subclasses, para modelar relacionamentos um-para-um
Todos os tipos acima também podem ser
Optional
, com exceção deAnyRealmValue
. As subclassesObject
eEmbeddedObject
devem ser opcionais.Além dos valores individuais, três tipos de collection diferentes são suportados:
List<Element>
: uma coleção mutável ordenada semelhante aArray
.MutableSet<Element>
: uma collection exclusiva não ordenada semelhante aSet
.Map<String, Element>
: uma collection de valores-chave não ordenada semelhante aDictionary
.
O tipo de collections Element pode ser qualquer um dos tipos de propriedades de collections suportadas listadas acima. As collection em si podem não ser opcionais, mas os valores dentro delas podem ser, exceto para listas e conjuntos de subclasses
Object
ouEmbeddedObject
.Finalmente, propriedades do
LinkingObjects
podem ser utilizadas para rastrear quais objetos estão vinculados a este.Todas as propriedades que devem ser armazenadas pelo Realm devem ser explicitamente marcadas com
@Persisted
. Quaisquer propriedades não marcadas com@Persisted
serão totalmente ignoradas pelo Realm e podem ser de qualquer tipo.Consultando
Você pode recuperar todos os objetos de um determinado tipo de um Realm chamando o método de instância
objects(_:)
.Relacionamentos
Consulte nosso guia Swift para obter mais detalhes.
Declaração
Swift
public typealias Object = RealmSwiftObject
-
EmbeddedObject
é uma classe base usada para definir objetos de modelo de Realm incorporados.Objetos incorporados funcionam da mesma forma que objetos normais, mas são de propriedade de um único objeto pai (que por sua vez pode estar incorporado). Ao contrário dos objetos normais de nível superior, os objetos incorporados não podem ser criados ou adicionados diretamente a um Realm. Em vez disso, eles só podem ser criados como parte de um objeto pai ou atribuindo um objeto não gerenciado à propriedade de um objeto pai. Objeto incorporado são excluídos automaticamente quando o objeto é excluído ou quando o objeto é modificado para não ponto mais para o objeto incorporado, reatribuindo uma propriedade de objeto ou removendo o objeto incorporado da lista que o contém.
Objeto incorporado só podem ter um único objeto vinculado a eles, e a tentativa de vinculação a um managed objeto incorporado existente lançará uma exceção.
Os tipos de propriedades suportados no
EmbeddedObject
são os mesmos doObject
, exceto pelo fato de que os objetos incorporados não podem ser vinculados a objetos de nível superior, portanto, as propriedadesObject
eList<Object>
não são suportadas (EmbeddedObject
eList<EmbeddedObject>
são).Objeto incorporado não pode ter chave primária ou propriedade indexada.
class Owner: Object { @Persisted var name: String @Persisted var dogs: List<Dog> } class Dog: EmbeddedObject { @Persisted var name: String @Persisted var adopted: Bool @Persisted(originProperty: "dogs") var owner: LinkingObjects<Owner> }
Declaração
Swift
public typealias EmbeddedObject = RealmSwiftEmbeddedObject
-
Uma estrutura que representa as coordenadas de um ponto formado por um valor de latitude e um valor de longitude.
- A latitude varia entre -90 e 90 graus, inclusive.
- A longitude varia entre -180 e 180 graus, inclusive.
Valores fora desses intervalos retornarão nulo ao tentar criar um
GeoPoint
.Observação
Não existe um tipo dedicado para armazenar pontos geoespaciais; em vez disso, os pontos devem ser armazenados como objeto incorporado em forma de GeoJson , conforme explicado abaixo. Query geoespaciais (geoWithin
) só podem ser executadas nesse tipo de objeto e serão lançadas de outra forma.Atualmente, a persistência de ponto geográficos no Realm é feita usando a digitação de Duck, o que significa que qualquer classe de modelo com uma forma específica pode ser query como se contivesse uma localização geográfica.
o seguinte é necessário:
- Uma propriedade String com o valor de ponto:
@Persisted var type: String = "Point"
. - Uma lista contendo um par Longitude/Latitude:
@Persisted private var coordinates: List<Double>
.
A abordagem recomendada é usar um objeto incorporado.
public class Location: EmbeddedObject { @Persisted private var coordinates: List<Double> @Persisted private var type: String = "Point" public var latitude: Double { return coordinates[1] } public var longitude: Double { return coordinates[0] } convenience init(_ latitude: Double, _ longitude: Double) { self.init() // Longitude comes first in the coordinates array of a GeoJson document coordinates.append(objectsIn: [longitude, latitude]) } }
Aviso
Esta estrutura não pode ser persistente e só pode ser utilizada para construir outras formas geoespaciais como (GeoBox
,GeoPolygon
eGeoCircle
).Declaração
Swift
public typealias GeoPoint = RLMGeospatialPoint
-
Uma classe que representa um retângulo, que pode ser utilizada em uma query geoespacial
geoWithin
.Aviso
Esta classe não pode ser persistente e só pode ser utilizada dentro de uma query geoespacialgeoWithin
.Declaração
Swift
public typealias GeoBox = RLMGeospatialBox
-
Uma classe que representa um polígono, que pode ser utilizada em uma query geoespacial
geoWithin
.Um
GeoPolygon
descreve uma forma composta de umPolygon
externo, chamadoouterRing
, e 0 ou maisPolygon
s internos, chamadoholes
, que representa um número ilimitado de orifícios internos dentro doPolygon
externo. UmPolygon
descreve uma forma composta por pelo menos três segmentos, onde o último e o primeiroGeoPoint
devem ser iguais para indicar um polígono fechado (o que significa que você precisa de pelo menos 4 pontos para definir um polígono). Os orifícios internos em umGeoPolygon
devem estar inteiramente dentro do anel externoUm
hole
tem as seguintes restrições:- Os orifícios não podem se cruzar, ou seja, o limite de um orifício não pode cruzar o interno e o externo de qualquer outro orifício.
- Os orifícios não podem compartilhar bordas, ou seja, se um orifício contiver uma borda BI, nenhum outro orifício poderá contê-la.
- Os orifícios podem compartilhar vérxes, no entanto, nenhum vértex pode aparecer duas vezes em um único orifício.
- Nenhum vazio pode estar vazio.
Apenas um aninhamento é permitido.
Aviso
Esta classe não pode ser persistente e só pode ser utilizada dentro de uma query geoespacial
geoWithin
.Aviso
A altura não é utilizada em nenhum dos cálculos da query.
Declaração
Swift
public typealias GeoPolygon = RLMGeospatialPolygon
-
Esta estrutura é um auxiliar para representar/converter uma distância. Ele pode ser utilizado em query geoespaciais como aquelas representadas por um
GeoCircle
Aviso
Esta estrutura não pode ser mantida e só pode ser usada para construir outras formas geoespaciaisDeclaração
Swift
public typealias Distance = RLMDistance
-
Uma classe que representa um círculo, que pode ser utilizada em uma query geoespacial
geoWithin
.Aviso
Esta classe não pode ser persistente e só pode ser utilizada dentro de uma query geoespacialgeoWithin
.Declaração
Swift
public typealias GeoCircle = RLMGeospatialCircle
-
O tipo de bloco de migração usado para migrar um Realm.
Declaração
Swift
public typealias MigrationBlock = @Sendable (_ migration: Migration, _ oldSchemaVersion: UInt64) -> Void
Parâmetros
migration
Um objeto
Migration
usado para executar a migração. O objeto de migração permite enumerar e alterar quaisquer objetos existentes que exijam migração.oldSchemaVersion
A versão do esquema do Realm que está sendo migrada.
-
Uma classe de objeto usada durante migrações.
Declaração
Swift
public typealias MigrationObject = DynamicObject
-
Um tipo de bloco que fornece as versões antigas e novas de um objeto no Realm. As propriedades do objeto só podem ser acessadas usando a assinatura.
Declaração
Swift
public typealias MigrationObjectEnumerateBlock = (_ oldObject: MigrationObject?, _ newObject: MigrationObject?) -> Void
Parâmetros
oldObject
O objeto do Realm original (somente leitura).
newObject
O objeto do Realm migrado (leitura-gravação).
-
Migration
instâncias encapsulam informações destinadas a facilitar a migração de um esquema.Uma instância
Migration
é 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
public typealias Migration = RLMMigration
-
O
MongoClient
permite ler e escrever em um banco de dados MongoDB por meio do serviço Realm Cloud.Ele fornece acesso a instâncias de
MongoDatabase
, que, por sua vez, fornecem acesso aMongoCollection
s específicos que contêm seus dados.Observação
Antes de ler ou gravar dados, o usuário deve fazer login.
Veja também
Declaração
Swift
public typealias MongoClient = RLMMongoClient
-
O
MongoDatabase
representa um MongoDB database, que contém um grupo de collection que contêm seus dados.Ele pode ser recuperado do
MongoClient
.Use-o para obter
MongoCollection
s para ler e gravar dados.Observação
Antes de ler ou gravar dados, o usuário deve fazer login'.
Veja também
Declaração
Swift
public typealias MongoDatabase = RLMMongoDatabase
-
Opções para utilizar ao executar um comando
find
em umMongoCollection
.Declaração
Swift
public typealias FindOptions = RLMFindOptions
-
Opções a serem usadas ao executar um comando
findOneAndUpdate
,findOneAndReplace
oufindOneAndDelete
em umMongoCollection
.Declaração
Swift
public typealias FindOneAndModifyOptions = RLMFindOneAndModifyOptions
-
O resultado de uma operação
updateOne
ouupdateMany
umMongoCollection
.Declaração
Swift
public typealias UpdateResult = RLMUpdateResult
-
Bloco que retorna Result.success(DocumentId) em uma inserção bem-sucedida ou Result.failure(error)
Declaração
Swift
public typealias MongoInsertBlock = @Sendable (Result<AnyBSON, Error>) -> Void
-
Bloco que retorna Result.success([ObjectId]) em um insertMany ou Result.failure(erro) bem-sucedido
Declaração
Swift
public typealias MongoInsertManyBlock = @Sendable (Result<[AnyBSON], Error>) -> Void
-
Bloco que retorna Result.success([documento]) em uma operação de localização bem-sucedida ou Result.failure(erro)
Declaração
Swift
public typealias MongoFindBlock = @Sendable (Result<[Document], Error>) -> Void
-
Bloco que retorna Result.success(documento?) em uma operação findOne bem-sucedida ou Result.failure(erro)
Declaração
Swift
public typealias MongoFindOneBlock = @Sendable (Result<Document?, Error>) -> Void
-
Bloco que retorna Result.success(Int) em uma operação de contagem bem-sucedida ou Result.failure(error)
Declaração
Swift
public typealias MongoCountBlock = @Sendable (Result<Int, Error>) -> Void
-
Bloco que retorna Result.success(UpdateResult) em uma operação de atualização bem-sucedida ou Result.failure(error)
Declaração
Swift
public typealias MongoUpdateBlock = @Sendable (Result<UpdateResult, Error>) -> Void
-
O
MongoCollection
representa uma collection MongoDB.Você pode obter uma instância de um
MongoDatabase
.Os métodos de criar, ler, atualizar e excluir estão disponíveis.
As operações no servidor Realm cloud são realizadas de forma assíncrona.
Observação
Antes de ler ou gravar dados, o usuário deve fazer login.
Veja também
Declaração
Swift
public typealias MongoCollection = RLMMongoCollection
-
Atua como intermediário e processa eventos com o WatchStream
Declaração
Swift
public typealias ChangeStream = RLMChangeStream
-
A ID da transação assíncrona.
Declaração
Swift
public typealias AsyncTransactionId = RLMAsyncTransactionId
-
O tipo de bloco a ser executado para fins de notificação quando os dados em um Realm são modificados.
Declaração
-
Logger
é usado para criar sua própria lógica de registro personalizada.Você pode definir seu próprio registrador criando uma instância de
Logger
e definir a função de registro que será invocada sempre que houver uma mensagem de registro.let logger = Logger(level: .all) { level, message in print("Realm Log - \(level): \(message)") }
Defina este registrador personalizado como seu registrador padrão usando
Logger.shared
.Logger.shared = inMemoryLogger
Observação
Por padrão, o nível de limite de registro é.info
, e as strings de registro são enviadas para o Apple System Logger.Declaração
Swift
public typealias Logger = RLMLogger
-
Um objeto que representa um usuário do Atlas App Services.
Veja
RLMUser
Declaração
Swift
public typealias User = RLMUser
-
Um gerenciador que configura e managed a funcionalidade relacionada à sincronização do Atlas App Services.
Veja
RLMSyncManager
Declaração
Swift
public typealias SyncManager = RLMSyncManager
-
Opções para configurar tempos limite e intervalos no cliente de sincronização.
Veja
RLMSyncTimeoutOptions
Declaração
Swift
public typealias SyncTimeoutOptions = RLMSyncTimeoutOptions
-
Um objeto de sessão que representa a comunicação entre o cliente e o servidor para um Realm específico.
Veja
RLMSyncSession
Declaração
Swift
public typealias SyncSession = RLMSyncSession
-
Um tipo de fechamento para um fechamento que pode ser definido no
SyncManager
para permitir que erros sejam relatados ao aplicativo.Veja
RLMSyncErrorReportingBlock
Declaração
Swift
public typealias ErrorReportingBlock = RLMSyncErrorReportingBlock
-
Um tipo de fechamento para um fechamento que é usado por determinadas API para retornar de forma assíncrona um objeto
SyncUser
à aplicação.Veja
RLMUserCompletionBlock
Declaração
Swift
public typealias UserCompletionBlock = RLMUserCompletionBlock
-
Um erro associado à funcionalidade de sincronização do SDK. Todos os erros relatados por um manipulador de erros registrado no
SyncManager
são deste tipo.Veja
RLMSyncError
Declaração
Swift
public typealias SyncError = RLMSyncError
-
Informações estendidas sobre uma gravação que foi rejeitada pelo servidor.
Às vezes, o servidor rejeitará gravações feitas pelo cliente por motivos como permissões, falha de validação adicional do lado do servidor ou porque o objeto não correspondeu a nenhuma assinatura de Flexible Sync. Quando isso acontece, um erro
.writeRejected
é relatado com um campoSyncError.compensatingWriteInfo
não nulo com informações sobre quais gravações foram rejeitadas e por que.Estas informações destinam-se apenas a fins de depuração e registro. As strings
reason
são geradas pelo servidor e não têm garantia de serem estáveis, portanto, tentar fazer qualquer coisa com elas programaticamente será interrompida sem aviso.Declaração
Swift
public typealias CompensatingWriteInfo = RLMCompensatingWriteInfo
-
Ocorreu um erro ao fazer uma solicitação ao Atlas App Services. A maioria das funções de usuário e aplicativo que podem falhar relata erros desse tipo.
Declaração
Swift
public typealias AppError = RLMAppError
-
Uma enumeração que pode ser usada para especificar o nível de registro.
Veja
RLMSyncLogLevel
Declaração
Swift
public typealias SyncLogLevel = RLMSyncLogLevel
-
Um tipo de dados cujos valores representam diferentes provedores de autenticação que podem ser usados com o Atlas App Services.
Veja
RLMIdentityProvider
Declaração
Swift
public typealias Provider = RLMIdentityProvider
-
Uma configuração que controla como as assinaturas iniciais são preenchidas quando um Arquivo de Realm é aberto pela primeira vez.
Veja
RLMInitialSubscriptionsConfiguration
Declaração
Swift
public typealias InitialSubscriptionsConfiguration = RLMInitialSubscriptionsConfiguration