<!--
{
  "availability" : [
    "iOS: 14.0.0 -",
    "iPadOS: 14.0.0 -",
    "macCatalyst: 14.0.0 -",
    "macOS: 11.0.0 -",
    "tvOS: 14.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 7.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "SwiftUI",
  "identifier" : "/documentation/SwiftUI/StateObject/wrappedValue",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Property",
  "symbol" : {
    "kind" : "Instance Property",
    "modules" : [
      "SwiftUI"
    ],
    "preciseIdentifier" : "s:7SwiftUI11StateObjectV12wrappedValuexvp"
  },
  "title" : "wrappedValue"
}
-->

# wrappedValue

The underlying value referenced by the state object.

```
@MainActor @preconcurrency var wrappedValue: ObjectType { get }
```

## Discussion

The wrapped value property provides primary access to the value’s data.
However, you don’t typically access it directly. Instead,
SwiftUI accesses this property for you when you refer to the variable
that you create with the `@StateObject` attribute:

```
@StateObject private var contact = Contact()

var body: some View {
    Text(contact.name) // Reads name from contact's wrapped value.
}
```

When you change a wrapped value, you can access the new
value immediately. However, SwiftUI updates views that display the value
asynchronously, so the interface might not update immediately.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)