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

관찰 가능 객체를 인스턴스화하는 속성 래퍼 유형입니다.

@StateRealmObject 속성을 속성 선언에 적용하고 doc://com.apple.documentation/documentation 을 준수하는 초기 값을 제공하여 SwiftUI/View, SwiftUI/App 또는 SwiftUI/Scene 에서 상태 Realm 객체를 생성합니다. /Combine/ObservableObject 프로토콜:

@StateRealmObject var model = DataModel()

SwiftUI는 객체를 선언하는 구조체의 각 인스턴스에 대해 객체의 새 인스턴스를 한 번만 생성합니다. 관찰 가능한 영역 객체의 게시된 속성이 변경되면 SwiftUI는 해당 속성에 의존하는 모든 뷰의 부분을 업데이트합니다. 관리되지 않는 경우 속성을 객체 자체에서 읽고, 그렇지 않으면 기본 Realm에서 읽습니다. 값을 변경하면 뷰가 비동기적으로 업데이트됩니다.

Text(model.title) // Updates the view any time `title` changes.

상태 객체를 SwiftUI/ObservedRealmObject 속성이 있는 속성에 전달할 수 있습니다.

$ 연산자를 사용하여 상태 객체의 속성 중 하나에 대한 SwiftUI/Binding 을(를) 가져옵니다. 객체의 속성 중 하나에 대한 양방향 연결을 생성하려는 경우 바인딩을 사용합니다. 예를 들어 SwiftUI/Toggle 가 모델에 저장된 isEnabled 라는 부울 값을 제어하도록 할 수 있습니다.

Toggle("Enabled", isOn: $model.isEnabled)

이렇게 하면 수정된 isEnabled 속성이 model 객체의 Realm에 기록됩니다.