StateRealmObject

@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 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 .