AsyncOpen
@available(iOS 14.0, macOS 11.0, tvOS 14.0, watchOS 7.0, *)
@MainActor
@propertyWrapper
public struct AsyncOpen : DynamicProperty
Um tipo de wrapper de propriedade que inicia um Realm.asyncOpen()
para o usuário atual, que abre um Realm de forma assíncrona e notifica os estados para o processo fornecido
Adicione o AsyncOpen ao seu SwiftUI/View
ou SwiftUI/App
depois que um usuário já estiver conectado ou se um usuário estiver conectado
@AsyncOpen(appId: "app_id", partitionValue: <partition_value>) var asyncOpen
Isso iniciará imediatamente uma operação Realm.asyncOpen()
que executará todo o trabalho necessário para colocar o Realm em um estado utilizável. (consulte a documentação do Realm.asyncOpen())
Este invólucro de propriedade publicará estados do processo atual Realm.asyncOpen()
, como progresso, erros e um Realm aberto, que pode ser usado para atualizar a visualização
struct AsyncOpenView: View {
@AsyncOpen(appId: "app_id", partitionValue: <partition_value>) var asyncOpen
var body: some View {
switch asyncOpen {
case .notOpen:
ProgressView()
case .open(let realm):
ListView()
.environment(\.realm, realm)
case .error(_):
ErrorView()
case .progress(let progress):
ProgressView(progress)
}
}
}
Esse realm
aberto pode ser injetado posteriormente na visualização como um valor de ambiente que será usado por nossos wrappers de propriedade para preencher a visualização com dados do Realm aberto
ListView()
.environment(\.realm, realm)
-
Um Editor para
AsyncOpenState
emite um estado sempre que o estado asyncOpen é alterado.Declaração
Swift
@MainActor public var projectedValue: Published<AsyncOpenState>.Publisher { get }
-
Isso cancelará qualquer notificação dos estados do invólucro da propriedade
Declaração
Swift
@MainActor public func cancel()
-
Inicialize o wrapper da propriedade
Declaração
Parâmetros
appId
O identificador exclusivo do seu aplicativo Realm, se vazio ou
nil
, tentará recuperar o aplicativo singular mais recente em cache.partitionValue
O valor
BSON
em que o Realm é particionado.configuration
O
Realm.Configuration
usado ao criar o Realm, a configuração de sincronização do usuário para o valor da partição fornecido será definida comosyncConfiguration
; se estiver vazia, a configuração do usuário será usada.timeout
O número máximo de milissegundos para permitir que uma conexão se torne totalmente estabelecida., se vazio ou
nil
, nenhum tempo limite de conexão está definido. -
Inicialize o wrapper de propriedade para uma configuração de Flexible Sync.
Declaração
Swift
@MainActor public init(appId: String? = nil, configuration: Realm.Configuration? = nil, timeout: UInt? = nil)
Parâmetros
appId
O identificador exclusivo do seu aplicativo Realm, se vazio ou
nil
, tentará recuperar o aplicativo singular mais recente em cache.configuration
O
Realm.Configuration
usado ao criar o Realm, a configuração de sincronização do usuário para o valor da partição fornecido será definida comosyncConfiguration
; se estiver vazia, a configuração do usuário será usada.timeout
O número máximo de milissegundos para permitir que uma conexão se torne totalmente estabelecida., se vazio ou
nil
, nenhum tempo limite de conexão está definido. -
Declaração
Swift
nonisolated public func update()