StateRealmObject
@available(iOS 14.0, macOS 11.0, tvOS 14.0, watchOS 7.0, *)
@MainActor
@propertyWrapper
public struct StateRealmObject<T> : DynamicProperty where T : RealmSubscribable, T : ThreadConfined, T : Equatable
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
.
-
Inicialize uma estrutura RealmState para um determinado tipo confinado de thread.
Declaração
Swift
@available(iOS 14.0, macOS 11.0, tvOS 14.0, watchOS 7.0, *) @MainActor public init<Value>(wrappedValue: T) where T == List<Value>, Value : RealmCollectionValue
-
Inicialize uma estrutura RealmState para um determinado tipo confinado de thread.
Declaração
Swift
@available(iOS 14.0, macOS 11.0, tvOS 14.0, watchOS 7.0, *) @MainActor public init<Value>(wrappedValue: T) where T == MutableSet<Value>, Value : RealmCollectionValue
-
Inicialize uma estrutura RealmState para um determinado tipo confinado de thread.
Declaração
Swift
@available(iOS 14.0, macOS 11.0, tvOS 14.0, watchOS 7.0, *) @MainActor public init<Key, Value>(wrappedValue: T) where T == Map<Key, Value>, Key : _MapKey, Value : RealmCollectionValue
-
Inicialize uma estrutura RealmState para um determinado tipo confinado de thread.
Declaração
Swift
@available(iOS 14.0, macOS 11.0, tvOS 14.0, watchOS 7.0, *) @MainActor public init(wrappedValue: T) where T : RLMObjectBase, T : Identifiable
-
Inicialize uma estrutura RealmState para um determinado tipo de projeção.
Declaração
Swift
@available(iOS 14.0, macOS 11.0, tvOS 14.0, watchOS 7.0, *) @MainActor public init(wrappedValue: T) where T : ProjectionObservable