---
title: UIObjectRestoration
framework: uikit
role: symbol
role_heading: Protocol
path: uikit/uiobjectrestoration
---

# UIObjectRestoration

The interface that restoration classes use to restore preserved objects.

## Declaration

```swift
@MainActor protocol UIObjectRestoration
```

## Overview

Overview A restorable object must set its objectRestorationClass property to the class that adopts this protocol. The method in this protocol should be used to return the object if it already exists or create it if needed.

## Topics

### Creating the restorable object

- [object(withRestorationIdentifierPath:coder:)](uikit/uiobjectrestoration/object(withrestorationidentifierpath:coder:).md)

## See Also

### Interface restoration

- [Restoring your app’s state](uikit/restoring-your-app-s-state.md)
- [Restoring your app’s state with SwiftUI](swiftui/restoring-your-app-s-state-with-swiftui.md)
- [Preserving your app’s UI across launches](uikit/preserving-your-app-s-ui-across-launches.md)
- [UIViewControllerRestoration](uikit/uiviewcontrollerrestoration.md)
- [UIStateRestoring](uikit/uistaterestoring.md)
